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

Class TransformerFactory

  • 已知直接子类:
    SAXTransformerFactory

    public abstract class TransformerFactory
    extends Object

    TransformerFactory实例可用于创建TransformerTemplates对象。

    确定要创建的Factory实现的系统属性名为"javax.xml.transform.TransformerFactory" 此属性命名TransformerFactory抽象类的具体子类。 如果未定义属性,则使用平台默认值。

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

      • TransformerFactory

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

      • newDefaultInstance

        public static TransformerFactory newDefaultInstance()
        创建 TransformerFactory内置系统默认实现的新实例。
        结果
        TransformerFactory内置系统默认实现的新实例。
        从以下版本开始:
        9
      • newInstance

        public static TransformerFactory newInstance()
                                              throws TransformerFactoryConfigurationError
        获取TransformerFactory的新实例。 此静态方法创建新的工厂实例。

        此方法使用以下有序查找过程来确定要加载的TransformerFactory实现类:

        • 使用javax.xml.transform.TransformerFactory系统属性。
        • 使用配置文件“jaxp.properties”。 该文件采用标准Properties格式,通常位于Java安装的conf目录中。 它包含实现类的完全限定名称,键是上面定义的系统属性。

          jaxp.properties文件只能由JAXP实现读取一次,然后缓存其值以供将来使用。 如果在第一次尝试从该文件读取时该文件不存在,则不再进行任何检查以检查其是否存在。 在第一次读取之后,无法更改jaxp.properties中任何属性的值。

        • 使用由ServiceLoader类定义的服务提供者加载工具尝试使用default loading mechanism定位和加载服务的实现 :服务提供者加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null,则将使用system class loader

        • 否则,返回system-default实现。

        一旦应用程序获得对TransformerFactory的引用,它就可以使用工厂来配置和获取转换器实例。

        结果
        新的TransformerFactory实例,永远不会为null。
        异常
        TransformerFactoryConfigurationError - 在service configuration error的情况下抛出,或者如果实现不可用或无法实例化。
      • newInstance

        public static TransformerFactory newInstance​(String factoryClassName,
                                                     ClassLoader classLoader)
                                              throws TransformerFactoryConfigurationError
        从工厂类名称获取TransformerFactory的新实例。 当类路径中有多个提供程序时,此函数很有用。 它为应用程序提供了更多控制,因为它可以指定应该加载哪个提供程序。

        一旦应用程序获得对TransformerFactory的引用,它就可以使用工厂来配置和获取转换器实例。

        故障排除提示

        设置jaxp.debug系统属性将导致此方法将大量调试消息打印到System.err了解它正在做什么以及它在哪里查看。

        如果您有问题,请尝试:

          java -Djaxp.debug=1 YourProgram .... 
        参数
        factoryClassName - 提供 javax.xml.transform.TransformerFactory实现的完全限定工厂类名称。
        classLoader - ClassLoader用于加载工厂类。 如果null当前Thread的上下文classLoader用于加载工厂类。
        结果
        新的TransformerFactory实例,永远不会为null。
        异常
        TransformerFactoryConfigurationError - 如果 factoryClassNamenull ,或者无法加载工厂类,则实例化。
        从以下版本开始:
        1.6
        另请参见:
        newInstance()
      • newTemplates

        public abstract Templates newTemplates​(Source source)
                                        throws TransformerConfigurationException
        将Source处理为Templates对象,该对象是源的编译表示。 然后可以跨多个线程同时使用此Templates对象。 创建Templates对象允许TransformerFactory对转换指令进行详细的性能优化,而不会影响运行时转换。
        参数
        source - 包含URL,输入流等的对象
        结果
        能够用于转换目的的Templates对象,从不 null
        异常
        TransformerConfigurationException - 解析构造Templates对象失败时。
      • getAssociatedStylesheet

        public abstract Source getAssociatedStylesheet​(Source source,
                                                       String media,
                                                       String title,
                                                       String charset)
                                                throws TransformerConfigurationException
        通过符合给定条件的xml-stylesheet processing instruction获取与XML Source文档关联的样式表规范。 请注意,可以返回多个样式表,在这种情况下,它们就像应用于单个样式表中的导入列表或级联一样。
        参数
        source - XML源文档。
        media - 要匹配的媒体属性。 可以为null,在这种情况下将使用首选模板(即alternate = no)。
        title - 要匹配的title属性的值。 可能为空。
        charset - 要匹配的charset属性的值。 可能为空。
        结果
        Source Object适于传递给 TransformerFactory
        异常
        TransformerConfigurationException -一个 异常是的分析过程中,如果出现错误occurings抛出 source
        另请参见:
        Associating Style Sheets with XML documents Version 1.0
      • setURIResolver

        public abstract void setURIResolver​(URIResolver resolver)
        设置在转换期间默认使用的对象,以解析document(),xsl:import或xsl:include中使用的URI。
        参数
        resolver - 实现URIResolver接口的对象,或null。
      • getURIResolver

        public abstract URIResolver getURIResolver()
        获取转换期间默认使用的对象,以解析document(),xsl:import或xsl:include中使用的URI。
        结果
        使用setURIResolver设置的URIResolver。
      • getFeature

        public abstract boolean getFeature​(String name)
        查找功能的值。

        功能名称完全合格URI s。 实现可以定义自己的功能。 false返回如果这TransformerFactoryTransformer S或Template的IT创建不支持该功能。 TransformerFactory可能会公开特征值但无法更改其状态。

        参数
        name - 功能名称。
        结果
        该功能的当前状态, truefalse
        异常
        NullPointerException - 如果 name参数为null。
      • getAttribute

        public abstract Object getAttribute​(String name)
        允许用户检索底层实现的特定属性。 如果底层实现无法识别该属性,则抛出IllegalArgumentException
        参数
        name - 属性的名称。
        结果
        value属性的值。
        异常
        IllegalArgumentException - 当实现无法识别该属性时。
      • setErrorListener

        public abstract void setErrorListener​(ErrorListener listener)
        为TransformerFactory设置错误事件侦听器,该侦听器用于处理转换指令,而不用于转换本身。 一个IllegalArgumentException如果抛出ErrorListener监听器是null
        参数
        listener - 新的错误侦听器。
        异常
        IllegalArgumentException - 当 listenernull
      • getErrorListener

        public abstract ErrorListener getErrorListener()
        获取TransformerFactory的错误事件处理程序。
        结果
        The current error handler, which should never be null.