模块  java.xml
软件包  javax.xml.transform

Class Transformer


  • public abstract class Transformer
    extends Object
    此抽象类的实例可以将源树转换为结果树。

    可以使用TransformerFactory.newTransformer方法获得此类的实例。 然后,该实例可用于处理来自各种源的XML,并将转换输出写入各种接收器。

    此类的对象不能在并发运行的多个线程中使用。 不同的线程可以同时使用不同的变换器。

    可以多次使用Transformer 变换之间保留参数和输出属性。

    从以下版本开始:
    1.4
    • 构造方法详细信息

      • Transformer

        protected Transformer()
        默认构造函数是故意保护的。
    • 方法详细信息

      • 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 - 无法识别密钥且未对名称空间进行限定。
        另请参见:
        OutputKeysProperties
      • 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
      • getErrorListener

        public abstract ErrorListener getErrorListener()
        获取对转换有效的错误事件处理程序。 实现必须提供默认的错误侦听器。
        结果
        当前的错误处理程序,它永远不应为null。