- 已知子类:
SAXTransformerFactory
TransformerFactory 实例可用于创建 Transformer
和 Templates
对象。
确定要创建哪个 Factory 实现的系统属性名为 "javax.xml.transform.TransformerFactory"
。此属性命名 TransformerFactory
抽象类的具体子类。如果未定义该属性,则使用平台默认值。
- 自从:
- 1.5
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract Source
getAssociatedStylesheet
(Source source, String media, String title, String charset) 通过匹配给定条件的 xml-stylesheet 处理指令 获取与 XMLSource
文档关联的样式表规范。abstract Object
getAttribute
(String name) 允许用户检索底层实现的特定属性。abstract ErrorListener
获取 TransformerFactory 的错误事件处理程序。abstract boolean
getFeature
(String name) 查找功能的值。abstract URIResolver
获取转换期间默认使用的对象,以解析 document()、xsl:import 或 xsl:include 中使用的 URI。static TransformerFactory
创建TransformerFactory
内置系统默认实现的新实例。static TransformerFactory
获得TransformerFactory
的新实例。static TransformerFactory
newInstance
(String factoryClassName, ClassLoader classLoader) 从工厂类名中获取TransformerFactory
的新实例。abstract Templates
newTemplates
(Source source) 将 Source 处理成 Templates 对象,它是源的编译表示。abstract Transformer
创建一个新的Transformer
执行从Source
到Result
的复制,即“identity transform”。abstract Transformer
newTransformer
(Source source) 将Source
处理成Transformer
Object
。abstract void
setAttribute
(String name, Object value) 允许用户在底层实现上设置特定属性。abstract void
setErrorListener
(ErrorListener listener) 为 TransformerFactory 设置错误事件监听,它用于转换指令的处理,而不是用于转换本身。abstract void
setFeature
(String name, boolean value) 为此工厂创建的TransformerFactory
和Transformer
或Template
设置一个功能。abstract void
setURIResolver
(URIResolver resolver) 设置转换期间默认使用的对象,以解析在 document()、xsl:import 或 xsl:include 中使用的 URI。
-
构造方法详细信息
-
TransformerFactory
protected TransformerFactory()默认构造方法是有意保护的。
-
-
方法详情
-
newDefaultInstance
创建TransformerFactory
内置系统默认实现的新实例。- 返回:
TransformerFactory
内置系统默认实现的新实例。- 自从:
- 9
-
newInstance
获得TransformerFactory
的新实例。此方法使用 JAXP 查找机制 来确定要加载的TransformerFactory
实现类。一旦应用程序获得了对
TransformerFactory
的引用,它就可以使用工厂来配置和获取转换器实例。- 返回:
- 新的 TransformerFactory 实例,永远不会为 null。
- 抛出:
TransformerFactoryConfigurationError
- 在 服务配置错误 的情况下或如果实现不可用或无法实例化时抛出。
-
newInstance
public static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader) throws TransformerFactoryConfigurationError 从工厂类名中获取TransformerFactory
的新实例。当类路径中有多个提供程序时,此函数很有用。它为应用程序提供了更多控制,因为它可以指定应加载哪个提供程序。一旦应用程序获得了对
TransformerFactory
的引用,它就可以使用工厂来配置和获取转换器实例。故障排除提示
设置
jaxp.debug
系统属性将导致此方法向System.err
打印大量调试消息,说明它正在做什么以及正在查看的位置。如果您遇到问题,请尝试:
java -Djaxp.debug=1 YourProgram ....
- 参数:
factoryClassName
- 提供javax.xml.transform.TransformerFactory
实现的完全限定工厂类名称。classLoader
-ClassLoader
用于加载工厂类。如果使用null
currentThread
的context classLoader加载工厂类。- 返回:
- 新的 TransformerFactory 实例,永远不会为 null。
- 抛出:
TransformerFactoryConfigurationError
- 如果factoryClassName
是null
,或者无法加载、实例化工厂类。- 自从:
- 1.6
- 参见:
-
newTransformer
将Source
处理成Transformer
Object
。Source
是一个符合 XSL 转换 (XSLT) 1.0 版 的 XSLT 文档。必须注意不要在同时运行的多个Thread
中使用此Transformer
。不同的TransformerFactories
可以同时被不同的Thread
使用。- 参数:
source
-Source
用于创建Transformer
的 XSLT 文档。 XMLSource
的示例包括DOMSource
、SAXSource
和StreamSource
。- 返回:
-
可用于在单个
Thread
中执行转换的Transformer
对象,从不用于null
。 - 抛出:
TransformerConfigurationException
- 如果在解析Source
时出现错误或无法创建Transformer
实例则抛出。- 参见:
-
newTransformer
创建一个新的Transformer
执行从Source
到Result
的复制,即“identity transform”。- 返回:
- 可用于在单个线程中执行转换的 Transformer 对象,永远不会为 null。
- 抛出:
TransformerConfigurationException
- 当无法创建Transformer
实例时。
-
newTemplates
将 Source 处理成 Templates 对象,它是源的编译表示。然后可以跨多个线程并发使用此模板对象。创建模板对象允许 TransformerFactory 对转换指令进行详细的性能优化,而不会影响运行时转换。- 参数:
source
- 包含 URL、输入流等的对象。- 返回:
-
能够用于转换目的的模板对象,从不
null
。 - 抛出:
TransformerConfigurationException
- 解析以构造模板对象时失败。
-
getAssociatedStylesheet
public abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset) throws TransformerConfigurationException 通过匹配给定条件的 xml-stylesheet 处理指令 获取与 XMLSource
文档关联的样式表规范。请注意,可以返回多个样式表,在这种情况下,它们的应用就像它们是单个样式表中的导入或级联列表一样。- 参数:
source
- XML 源文档。media
- 要匹配的媒体属性。可以为空,在这种情况下将使用首选模板(即 alternate = no)。title
- 要匹配的标题属性的值。可能为空。charset
- 要匹配的字符集属性的值。可能为空。- 返回:
-
A
Source
Object
适合传递给TransformerFactory
。 - 抛出:
TransformerConfigurationException
- 如果在解析source
期间发生错误,则会抛出Exception
。- 参见:
-
setURIResolver
设置转换期间默认使用的对象,以解析在 document()、xsl:import 或 xsl:include 中使用的 URI。- 参数:
resolver
- 一个实现 URIResolver 接口的对象,或者为 null。
-
getURIResolver
获取转换期间默认使用的对象,以解析 document()、xsl:import 或 xsl:include 中使用的 URI。- 返回:
- 使用 setURIResolver 设置的 URIResolver。
-
setFeature
public abstract void setFeature(String name, boolean value) throws TransformerConfigurationException 为此工厂创建的
TransformerFactory
和Transformer
或Template
设置一个功能。功能名称是完全限定的
URI
s。实现可以定义自己的特性。如果它创建的TransformerFactory
或Transformer
s 或Template
s 不支持该功能,则会抛出TransformerConfigurationException
。TransformerFactory
可以公开一个特征值但无法更改其状态。所有实现都需要支持
XMLConstants.FEATURE_SECURE_PROCESSING
功能。当特征是:true
:实现将限制 XML 处理以符合实现限制并以实现定义的安全方式运行。示例包括解析用户定义的样式表和函数。如果出于安全原因限制 XML 处理,将通过调用已注册的ErrorListener.fatalError(TransformerException exception)
来报告。参见setErrorListener(ErrorListener listener)
。false
:实现将根据 XML 规范处理 XML,而不考虑可能的实现限制。
- 参数:
name
- 特征名称。value
- 是特征状态true
或false
。- 抛出:
TransformerConfigurationException
- 如果它创建的这个TransformerFactory
或Transformer
或Template
不支持此功能。NullPointerException
- 如果name
参数为空。
-
getFeature
查找功能的值。功能名称是完全限定的
URI
s。实现可以定义自己的特性。如果它创建的TransformerFactory
或Transformer
或Template
不支持该功能,则返回false
。TransformerFactory
可以公开一个特征值但无法更改其状态。- 参数:
name
- 特征名称。- 返回:
-
功能的当前状态,
true
或false
。 - 抛出:
NullPointerException
- 如果name
参数为空。
-
setAttribute
允许用户在底层实现上设置特定属性。此上下文中的属性定义为实现提供的选项。如果底层实现无法识别该属性,则会抛出IllegalArgumentException
。所有实现 JAXP 1.5 或更新版本的实现都需要支持
XMLConstants.ACCESS_EXTERNAL_DTD
和XMLConstants.ACCESS_EXTERNAL_STYLESHEET
属性。对源文件中外部 DTD 的访问仅限于
XMLConstants.ACCESS_EXTERNAL_DTD
属性指定的协议。如果由于此属性的限制而在转换期间拒绝访问,TransformerException
将被Transformer.transform(Source, Result)
抛出。样式表中对外部 DTD 的访问仅限于
XMLConstants.ACCESS_EXTERNAL_DTD
属性指定的协议。如果由于此属性的限制而在创建新转换器期间拒绝访问,TransformerConfigurationException
将被newTransformer(Source)
方法抛出。对样式表处理指令、导入和包含元素设置的外部引用的访问仅限于
XMLConstants.ACCESS_EXTERNAL_STYLESHEET
属性指定的协议。如果由于此属性的限制而在创建新转换器期间拒绝访问,TransformerConfigurationException
将被newTransformer(Source)
方法抛出。通过 XSLT 文档函数访问外部文档仅限于属性指定的协议。如果由于此属性的限制而在转换过程中拒绝访问,
TransformerException
将被Transformer.transform(Source, Result)
方法抛出。
- 参数:
name
- 属性的名称。value
- 属性的值。- 抛出:
IllegalArgumentException
- 当实现无法识别该属性时。
-
getAttribute
允许用户检索底层实现的特定属性。如果底层实现无法识别该属性,则会抛出IllegalArgumentException
。- 参数:
name
- 属性的名称。- 返回:
- 值 属性的值。
- 抛出:
IllegalArgumentException
- 当实现无法识别该属性时。
-
setErrorListener
为 TransformerFactory 设置错误事件监听器,它用于转换指令的处理,而不是用于转换本身。如果ErrorListener
监听器是null
,则会抛出IllegalArgumentException
。- 参数:
listener
- 新的错误监听器。- 抛出:
IllegalArgumentException
- 当listener
为null
-
getErrorListener
获取 TransformerFactory 的错误事件处理程序。- 返回:
- 当前的错误处理程序,它永远不应为 null。
-