- java.lang.Object
 -  
      
- javax.xml.transform.Transformer
 
 
-  
       
public abstract class Transformer extends Object
此抽象类的实例可以将源树转换为结果树。可以使用
TransformerFactory.newTransformer方法获得此类的实例。 然后,该实例可用于处理来自各种源的XML,并将转换输出写入各种接收器。此类的对象不能在并发运行的多个线程中使用。 不同的线程可以同时使用不同的变换器。
可以多次使用
Transformer。 变换之间保留参数和输出属性。- 从以下版本开始:
 - 1.4
 
 
-  
        
       
-  
             
构造方法摘要
构造方法 变量 构造器 描述 protectedTransformer()默认构造函数是故意保护的。 
-  
             
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract voidclearParameters()清除使用setParameter设置的所有参数。abstract ErrorListenergetErrorListener()获取对转换有效的错误事件处理程序。abstract PropertiesgetOutputProperties()获取转换的输出属性的副本。abstract StringgetOutputProperty(String name)获取对变换器有效的输出属性。abstract ObjectgetParameter(String name)获取使用setParameter显式设置的参数。abstract URIResolvergetURIResolver()获取将用于解析document()中使用的URI的对象。voidreset()将此Transformer重置为其原始配置。abstract voidsetErrorListener(ErrorListener listener)设置对转换有效的错误事件侦听器。abstract voidsetOutputProperties(Properties oformat)设置转换的输出属性。abstract voidsetOutputProperty(String name, String value)设置将对转换有效的输出属性。abstract voidsetParameter(String name, Object value)为转换添加参数。abstract voidsetURIResolver(URIResolver resolver)设置一个对象,用于解析document()中使用的URI。abstract voidtransform(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或ErrorListenerObjects,例如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。
 
 
 -  
 
 -