- 已知子类:
SAXTransformerFactory
TransformerFactory 实例可用于创建 Transformer 和 Templates 对象。
确定要创建哪个 Factory 实现的系统属性名为 "javax.xml.transform.TransformerFactory"。此属性命名 TransformerFactory 抽象类的具体子类。如果未定义该属性,则使用平台默认值。
- 自从:
- 1.5
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract SourcegetAssociatedStylesheet(Source source, String media, String title, String charset) 通过匹配给定条件的 xml-stylesheet 处理指令 获取与 XMLSource文档关联的样式表规范。abstract ObjectgetAttribute(String name) 允许用户检索底层实现的特定属性。abstract ErrorListener获取 TransformerFactory 的错误事件处理程序。abstract booleangetFeature(String name) 查找功能的值。abstract URIResolver获取转换期间默认使用的对象,以解析 document()、xsl:import 或 xsl:include 中使用的 URI。static TransformerFactory创建TransformerFactory内置系统默认实现的新实例。static TransformerFactory获得TransformerFactory的新实例。static TransformerFactorynewInstance(String factoryClassName, ClassLoader classLoader) 从工厂类名中获取TransformerFactory的新实例。abstract TemplatesnewTemplates(Source source) 将 Source 处理成 Templates 对象,它是源的编译表示。abstract Transformer创建一个新的Transformer执行从Source到Result的复制,即“identity transform”。abstract TransformernewTransformer(Source source) 将Source处理成TransformerObject。abstract voidsetAttribute(String name, Object value) 允许用户在底层实现上设置特定属性。abstract voidsetErrorListener(ErrorListener listener) 为 TransformerFactory 设置错误事件监听,它用于转换指令的处理,而不是用于转换本身。abstract voidsetFeature(String name, boolean value) 为此工厂创建的TransformerFactory和Transformer或Template设置一个功能。abstract voidsetURIResolver(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用于加载工厂类。如果使用nullcurrentThread的context classLoader加载工厂类。- 返回:
- 新的 TransformerFactory 实例,永远不会为 null。
- 抛出:
TransformerFactoryConfigurationError- 如果factoryClassName是null,或者无法加载、实例化工厂类。- 自从:
- 1.6
- 参见:
-
newTransformer
将Source处理成TransformerObject。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
SourceObject适合传递给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设置一个功能。功能名称是完全限定的
URIs。实现可以定义自己的特性。如果它创建的TransformerFactory或Transformers 或Templates 不支持该功能,则会抛出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
查找功能的值。功能名称是完全限定的
URIs。实现可以定义自己的特性。如果它创建的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。
-