Module  java.xml
软件包  javax.xml.transform

Class Transformer



  • public abstract class Transformer
    extends Object
    这个抽象类的一个实例可以将一个源代码树转换成一个结果树。

    该类的一个实例可以通过TransformerFactory.newTransformer方法获得。 然后,该实例可用于从各种源处理XML,并将转换输出写入各种汇。

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

    A Transformer可以多次使用。 跨转换保留参数和输出属性。

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

      • Transformer

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

      • 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 - 当钥匙无法识别并且没有命名空间限定。
        另请参见:
        OutputKeysProperties
      • 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
      • getErrorListener

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