- java.lang.Object
-
- javax.xml.transform.Transformer
-
public abstract class Transformer extends Object
这个抽象类的一个实例可以将一个源代码树转换成一个结果树。该类的一个实例可以通过
TransformerFactory.newTransformer
方法获得。 然后,该实例可用于从各种源处理XML,并将转换输出写入各种汇。此类的对象可能不会同时运行在多个线程中。 不同的线程可以同时使用不同的变压器。
A
Transformer
可以多次使用。 跨转换保留参数和输出属性。- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Transformer()
默认构造函数是有意保护的。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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
s的重用,从而节省与创建新的Transformer
s相关的资源。复位
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
被实例化和任何修改作出Transformer
实例。空的
Source
表示为由DocumentBuilder.newDocument()
构造的空文件。 转换空Source
的结果取决于转换行为; 它并不总是空的Result
。- 参数
-
xmlSource
- 要转换的XML输入。 -
outputTarget
-该Result
改造的xmlSource
。 - 异常
-
TransformerException
- 如果在转换过程中发生不可恢复的错误。
-
setParameter
public abstract void setParameter(String name, Object value)
添加转换参数。将限定名称作为两部分字符串传递,命名空间URI用大括号({})括起来,后跟本地名称。 如果该名称具有空值URL,则该字符串仅包含本地名称。 应用程序可以通过测试来查看名称的第一个字符是否为“{”字符,从而安全地检查非空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对象。 由处理器提供适当的对象沉浸或简单地传递对象以在扩展中使用。 - 异常
-
NullPointerException
- 如果值为空。
-
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的对象。如果解析器参数为空,则URIResolver值将被清除,变压器将不再具有解析器。
- 参数
-
resolver
- 实现URIResolver接口的对象,或null。
-
getURIResolver
public abstract URIResolver getURIResolver()
获取一个用于解析document()中使用的URI的对象。- 结果
- 实现URIResolver接口的对象,或者为空。
-
setOutputProperties
public abstract void setOutputProperties(Properties oformat)
设置转换的输出属性。 这些属性将覆盖使用xsl:output的Templates中设置的属性。如果此函数的参数为空,则将删除先前设置的任何属性,并将该值还原为在模板对象中定义的值。
将合格的属性密钥名称作为两部分字符串,命名空间URI以大括号({})括起,后跟本地名称。 如果该名称具有空值URL,则该字符串仅包含本地名称。 应用程序可以通过测试来查看名称的第一个字符是否为“{”字符,从而安全地检查非空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,则该字符串仅包含本地名称。 应用程序可以通过测试来查看名称的第一个字符是否为“{”字符,从而安全地检查非空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
- 一个非空字符串,指定输出属性名称,可能是命名空间限定的。 -
value
- 输出属性的非空字符串值。 - 异常
-
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
- 非空字符串,用于指定输出属性名称,可能是命名空间限定的。 - 结果
- output属性的字符串值,如果没有找到属性,则返回null。
- 异常
-
IllegalArgumentException
- 如果不支持该属性。 - 另请参见:
-
OutputKeys
-
setErrorListener
public abstract void setErrorListener(ErrorListener listener) throws IllegalArgumentException
设置变量生效的错误事件侦听器。- 参数
-
listener
- 新的错误侦听器。 - 异常
-
IllegalArgumentException
- 如果监听器为空。
-
getErrorListener
public abstract ErrorListener getErrorListener()
获取有效转换的错误事件处理程序。 实现必须提供一个默认错误侦听器。- 结果
- 当前的错误处理程序,不应该为null。
-
-