java.lang.Object javax.xml.transform.TransformerFactory
public abstract class TransformerFactory
TransformerFactory 实例可用于创建 Transformer
和 Templates
对象。
确定要创建的哪一个 Factory 实现被命名为 "javax.xml.transform.TransformerFactory"
的系统属性。此属性命名了 TransformerFactory
抽象类的一个具体子类。如果未定义此属性,则使用平台默认的属性。
构造方法摘要 | |
---|---|
protected |
TransformerFactory() 默认构造方法受到有意保护。 |
方法摘要 | |
---|---|
abstract Source |
getAssociatedStylesheet(Source source, String media, String title, String charset) 通过与给定标准匹配的 xml 样式表的处理指令 获取与 XML Source 文档关联的样式表规范(或多个规范)。 |
abstract Object |
getAttribute(String name) 允许用户在底层实现上检索指定属性。 |
abstract ErrorListener |
getErrorListener() 获取 TransformerFactory 的错误事件处理程序。 |
abstract boolean |
getFeature(String name) 查找功能值。 |
abstract URIResolver |
getURIResolver() 获取在转换过程中默认用于解析 document()、xsl:import 或 xsl:include 中所使用的 URI 的对象。 |
static TransformerFactory |
newInstance() 获取 TransformerFactory 的新实例。 |
static TransformerFactory |
newInstance(String factoryClassName, ClassLoader classLoader) 根据类名称获得一个新 TransformerFactory 实例。 |
abstract Templates |
newTemplates(Source source) 将 Source 处理为 Templates 对象,后者是源的编译后表示形式。 |
abstract Transformer |
newTransformer() 创建执行从 Source 到 Result 的复制的新 Transformer 。 |
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 的对象。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected TransformerFactory()
方法详细信息 |
---|
public static TransformerFactory newInstance() throws TransformerFactoryConfigurationError
获取 TransformerFactory
的新实例。此静态方法创建新的工厂实例。此方法使用以下顺序的查找程序来确定要加载的 TransformerFactory
实现类:
javax.xml.transform.TransformerFactory
系统属性。 java.util.Properties
且包含实现类的完全限定名,其中实现类的键是上述定义的系统属性。 JAXP 实现只读取一次 jaxp.properties 文件,然后缓存其值供以后使用。如果首次尝试读取文件时,文件不存在,则不会再次尝试检查该文件是否存在。首次读取 jaxp.properties 后,其中的属性值不能再更改。 META-INF/services/javax.xml.transform.TransformerFactory
中的类名称。 TransformerFactory
实例。 在应用程序已获取对 TransformerFactory
的引用后,它可以使用工厂来配置和获取转换器实例。
TransformerFactoryConfigurationError
- 如果实现不可用或不能被实例化。
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
,则使用当前
Thread
的上下文 classLoader 来加载工厂类。
TransformerFactoryConfigurationError
- 如果
factoryClassName
为
null
,或者不能加载或实例化工厂类。
newInstance()
public abstract Transformer newTransformer(Source source) throws TransformerConfigurationException
将 Source
处理为 Transformer
Object
。Source
是遵守 XSL Transformations (XSLT) Version 1.0 的 XSLT 文档。必须注意的是,在多个 Thread
并发运行中不能使用此 Transformer
。不同 Thread
可以并发使用不同的 TransformerFactories
。
用于创建
-
Transformer
的 XSLT 文档的源
Source
。XML
Source
的示例包括
DOMSource
、
SAXSource
和
StreamSource
。
Thread
中执行转换的
Transformer
对象,永远不能返回
null
。
TransformerConfigurationException
- 如果当解析
Source
时发生错误,或不能创建
Transformer
实例。
public abstract Transformer newTransformer() throws TransformerConfigurationException
创建执行从 Source
到 Result
的复制的新 Transformer
。即 "identity transform"。
TransformerConfigurationException
- 当不能创建
Transformer
实例时。
public abstract Templates newTemplates(Source source) throws TransformerConfigurationException
source
- 保持 URL、输入流等的对象。
null
。
TransformerConfigurationException
- 当对构造 Templates 对象进行解析失败时。
public abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset) throws TransformerConfigurationException
通过与给定标准匹配的 xml 样式表的处理指令 获取与 XML Source
文档关联的样式表规范(或多个规范)。注意,可能返回几个样式表,在这种情况下它们作为导入列表或单个样式表中的层叠列表来使用。
source
- XML 源文档。
media
- 要匹配的介质属性。可以为 null,此时将使用首选的 template(即 alternate = no)。
title
- 要匹配的标题属性值。可以为 null。
charset
- 要匹配的字符集属性值。可以为 null。
TransformerFactory
的
Source
Object
。
TransformerConfigurationException
- 如果
source
的解析过程中发生错误,则抛出
Exception
。
public abstract void setURIResolver(URIResolver resolver)
resolver
- 实现 URIResolver 接口的对象,或为 null。
public abstract URIResolver getURIResolver()
public abstract void setFeature(String name, boolean value) throws TransformerConfigurationException
设置通过此工厂创建的此 TransformerFactory
和 Transformer
或 Template
的功能。
功能名称是完全限定的 URI
。实现可以定义它们自己的功能。如果它创建的此 TransformerFactory
或 Transformer
或 Template
不支持该功能,则抛出 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
参数为 null。
public abstract boolean getFeature(String name)
功能名称为完全限定的 URI
。实现可以定义其自己的功能。如果其创建的 TransformerFactory
或 Transformer
或 Template
不支持该功能,则返回 false
。TransformerFactory
可以公开功能值,但不能更改其状态。
name
- 功能名称。
true
或
false
。
NullPointerException
- 如果
name
参数为 null。
public abstract void setAttribute(String name, Object value)
IllegalArgumentException
。
name
- 属性名称。
value
- 属性值。
IllegalArgumentException
- 当实现不能识别属性时。
public abstract Object getAttribute(String name)
IllegalArgumentException
。
name
- 属性名称。
value
- 属性值。
IllegalArgumentException
- 当实现不能识别属性时。
public abstract void setErrorListener(ErrorListener listener)
ErrorListener
侦听器为
null
,则抛出
IllegalArgumentException
。
listener
- 新错误侦听器。
IllegalArgumentException
- 当
listener
为
null
时。
public abstract ErrorListener getErrorListener()