- java.lang.Object
-
- javax.xml.transform.Transformer
-
public abstract class Transformer extends Object
此抽象类的实例可以将源树转换为结果树。可以使用
TransformerFactory.newTransformer
方法获得此类的实例。 然后,该实例可用于处理来自各种源的XML,并将转换输出写入各种接收器。此类的对象不能在并发运行的多个线程中使用。 不同的线程可以同时使用不同的变换器。
可以多次使用
Transformer
。 变换之间保留参数和输出属性。- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
Transformer()
默认构造函数是故意保护的。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract void
clearParameters()
清除使用setParameter设置的所有参数。abstract ErrorListener
getErrorListener()
获取对转换有效的错误事件处理程序。abstract Properties
getOutputProperties()
获取转换的输出属性的副本。abstract String
getOutputProperty(String name)
获取对变换器有效的输出属性。abstract Object
getParameter(String name)
获取使用setParameter显式设置的参数。abstract URIResolver
getURIResolver()
获取将用于解析document()中使用的URI的对象。void
reset()
将此Transformer
重置为其原始配置。abstract void
setErrorListener(ErrorListener listener)
设置对转换有效的错误事件侦听器。abstract void
setOutputProperties(Properties oformat)
设置转换的输出属性。abstract void
setOutputProperty(String name, String value)
设置将对转换有效的输出属性。abstract void
setParameter(String name, Object value)
为转换添加参数。abstract void
setURIResolver(URIResolver resolver)
设置一个对象,用于解析document()中使用的URI。abstract void
transform(Source xmlSource, Result outputTarget)
将XMLSource
转换为Result
。
-
-
-
方法详细信息
-
reset
public void reset()
将此
Transformer
重置为其原始配置。Transformer
重置为与使用TransformerFactory.newTransformer()
,TransformerFactory.newTransformer(Source source)
或Templates.newTransformer()
创建时相同的状态。reset()
旨在允许重用现有的Transformer
从而节省与创建新Transformer
相关的资源。重置
Transformer
不保证具有相同的URIResolver
或ErrorListener
Object
s,例如Object.equals(Object obj)
。 它保证功能相同URIResolver
和ErrorListener
。- 异常
-
UnsupportedOperationException
- 当实现不覆盖此方法时。 - 从以下版本开始:
- 1.5
-
transform
public abstract void transform(Source xmlSource, Result outputTarget) throws TransformerException
将XML
Source
转换为Result
。 特定的转换行为由实例化TransformerFactory
时所生效的Transformer
的设置以及对TransformerFactory
实例的任何修改Transformer
。空
Source
表示为由DocumentBuilder.newDocument()
构造的空文档。 转换空Source
的结果取决于转换行为; 它并不总是空的Result
。- 参数
-
xmlSource
- 要转换的XML输入。 -
outputTarget
-该Result
改造的xmlSource
。 - 异常
-
TransformerException
- 如果在转换过程中发生不可恢复的错误。
-
setParameter
public abstract void setParameter(String name, Object value)
为转换添加参数。将限定名称作为两部分字符串传递,名称空间URI用大括号({})括起来,后跟本地名称。 如果名称具有空URL,则String仅包含本地名称。 应用程序可以通过测试查看名称的第一个字符是否为“{”字符来安全地检查非空URI。
例如,如果从使用<xyz:foo xmlns:xyz =“http://xyz.foo.com/yada/baz.html”/>定义的元素获取URI和本地名称,那么限定名称将是“{http://xyz.foo.com/yada/baz.html}foo”。 请注意,不使用前缀。
- 参数
-
name
- 参数的名称,该名称可以以花括号({})中的命名空间URI开头。 -
value
- 值对象。 这可以是任何有效的Java对象。 由处理器提供适当的对象coersion或简单地传递对象以用于扩展。 - 异常
-
NullPointerException
- 如果value为null。
-
getParameter
public abstract Object getParameter(String name)
获取使用setParameter显式设置的参数。此方法不返回默认参数值,在转换过程中评估节点上下文之前无法确定该值。
- 参数
-
name
- 获得Object
- 结果
- 使用setParameter设置的参数。
-
clearParameters
public abstract void clearParameters()
清除使用setParameter设置的所有参数。
-
setURIResolver
public abstract void setURIResolver(URIResolver resolver)
设置一个对象,用于解析document()中使用的URI。如果解析器参数为null,则将清除URIResolver值,并且变换器将不再具有解析器。
- 参数
-
resolver
- 实现URIResolver接口的对象,或null。
-
getURIResolver
public abstract URIResolver getURIResolver()
获取将用于解析document()中使用的URI的对象。- 结果
- 实现URIResolver接口的对象,或null。
-
setOutputProperties
public abstract void setOutputProperties(Properties oformat)
设置转换的输出属性。 这些属性将覆盖使用xsl:output的Templates中设置的属性。如果此函数的参数为null,则删除先前设置的任何属性,并且该值将恢复为templates对象中定义的值。
将限定属性键名称作为两部分字符串传递,名称空间URI用大括号({})括起来,后跟本地名称。 如果名称具有空URL,则String仅包含本地名称。 应用程序可以通过测试查看名称的第一个字符是否为“{”字符来安全地检查非空URI。
例如,如果从使用<xyz:foo xmlns:xyz =“http://xyz.foo.com/yada/baz.html”/>定义的元素获取URI和本地名称,那么限定名称将是“{http://xyz.foo.com/yada/baz.html}foo”。 请注意,不使用前缀。
如果任何参数键未被识别且未进行命名空间限定,则抛出IllegalArgumentException
。- 参数
-
oformat
- 一组输出属性,将用于覆盖转换中影响的任何相同属性。 - 异常
-
IllegalArgumentException
- 无法识别密钥且未对名称空间进行限定。 - 另请参见:
-
OutputKeys
,Properties
-
getOutputProperties
public abstract Properties getOutputProperties()
获取转换的输出属性的副本。
返回的属性应包含用户设置的属性和样式表设置的属性,并且这些属性由section 16 of the XSL Transformations (XSLT) W3C Recommendation指定的默认属性“默认”。 用户或样式表专门设置的属性应位于基本属性列表中,而未特别设置的XSLT默认属性应为默认属性列表。 因此,的getOutputProperties()的getProperty(String键)将在取得任何财产被设置
setOutputProperty(java.lang.String, java.lang.String)
,setOutputProperties(java.util.Properties)
,在样式表, 或默认属性,而的getOutputProperties()得到(String键)将只检索了明确的性质通过设置setOutputProperty(java.lang.String, java.lang.String)
,setOutputProperties(java.util.Properties)
,或在样式表。请注意,返回的Properties对象的变异不会影响变换器包含的属性。
如果任何参数键未被识别且未进行命名空间限定,则将忽略该属性并且不返回该属性。 换句话说,行为与
setOutputProperties
不正交。- 结果
- 为下一次转换生效的输出属性集的副本。
- 另请参见:
-
OutputKeys
,Properties
, XSL Transformations (XSLT) Version 1.0
-
setOutputProperty
public abstract void setOutputProperty(String name, String value) throws IllegalArgumentException
设置将对转换有效的输出属性。将限定属性名称作为两部分字符串传递,名称空间URI用大括号({})括起来,后跟本地名称。 如果名称具有空URL,则String仅包含本地名称。 应用程序可以通过测试查看名称的第一个字符是否为“{”字符来安全地检查非空URI。
例如,如果从使用<xyz:foo xmlns:xyz =“http://xyz.foo.com/yada/baz.html”/>定义的元素获取URI和本地名称,那么限定名称将是“{http://xyz.foo.com/yada/baz.html}foo”。 请注意,不使用前缀。
调用此方法不会影响传递给
setOutputProperties(java.util.Properties)
的Properties对象。- 参数
-
name
- 非null String,指定输出属性名称,该名称可以是名称空间限定的。 -
value
- 输出属性的非null字符串值。 - 异常
-
IllegalArgumentException
- 如果不支持该属性,并且未使用命名空间限定。 - 另请参见:
-
OutputKeys
-
getOutputProperty
public abstract String getOutputProperty(String name) throws IllegalArgumentException
获取对变换器有效的输出属性。
如果已使用
setOutputProperty(java.lang.String, java.lang.String)
设置了属性,则将返回该值。 否则,如果在样式表中显式指定了属性,则将返回该值。 如果属性的值已默认,即,如果未使用setOutputProperty(java.lang.String, java.lang.String)
或样式表中显式设置任何值,则结果可能会因实现和输入样式表而异。- 参数
-
name
- 非null String,指定输出属性名称,该名称可以是名称空间限定的。 - 结果
- 输出属性的字符串值,如果未找到属性,则返回null。
- 异常
-
IllegalArgumentException
- 如果不支持该属性。 - 另请参见:
-
OutputKeys
-
setErrorListener
public abstract void setErrorListener(ErrorListener listener) throws IllegalArgumentException
设置对转换有效的错误事件侦听器。- 参数
-
listener
- 新的错误侦听器。 - 异常
-
IllegalArgumentException
- 如果listener为null。
-
getErrorListener
public abstract ErrorListener getErrorListener()
获取对转换有效的错误事件处理程序。 实现必须提供默认的错误侦听器。- 结果
- 当前的错误处理程序,它永远不应为null。
-
-