模块 java.xml

类 TransformerFactory

java.lang.Object
javax.xml.transform.TransformerFactory
已知子类:
SAXTransformerFactory

public abstract class TransformerFactory extends Object

TransformerFactory 实例可用于创建 Transformer Templates 对象。

确定要创建哪个 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 的新实例。此方法使用 JAXP 查找机制 来确定要加载的 TransformerFactory 实现类。

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

      返回:
      新的 TransformerFactory 实例,永远不会为 null。
      抛出:
      TransformerFactoryConfigurationError - 在 服务配置错误 的情况下或如果实现不可用或无法实例化时抛出。
    • 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 用于加载工厂类。如果使用nullcurrentThread的context classLoader加载工厂类。
      返回:
      新的 TransformerFactory 实例,永远不会为 null。
      抛出:
      TransformerFactoryConfigurationError - 如果 factoryClassNamenull ,或者无法加载、实例化工厂类。
      自从:
      1.6
      参见:
    • newTransformer

      public abstract Transformer  newTransformer(Source  source) throws TransformerConfigurationException
      Source 处理成 Transformer ObjectSource 是一个符合 XSL 转换 (XSLT) 1.0 版 的 XSLT 文档。必须注意不要在同时运行的多个 Thread 中使用此 Transformer。不同的TransformerFactories可以同时被不同的Thread使用。
      参数:
      source - Source 用于创建 Transformer 的 XSLT 文档。 XML Source 的示例包括 DOMSource SAXSource StreamSource
      返回:
      可用于在单个 Thread 中执行转换的 Transformer 对象,从不用于 null
      抛出:
      TransformerConfigurationException - 如果在解析 Source 时出现错误或无法创建 Transformer 实例则抛出。
      参见:
    • newTransformer

      public abstract Transformer  newTransformer() throws TransformerConfigurationException
      创建一个新的 Transformer 执行从 SourceResult 的复制,即“identity transform”。
      返回:
      可用于在单个线程中执行转换的 Transformer 对象,永远不会为 null。
      抛出:
      TransformerConfigurationException - 当无法创建 Transformer 实例时。
    • newTemplates

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

      public abstract Source  getAssociatedStylesheet(Source  source, String  media, String  title, String  charset) throws TransformerConfigurationException
      通过匹配给定条件的 xml-stylesheet 处理指令 获取与 XML Source 文档关联的样式表规范。请注意,可以返回多个样式表,在这种情况下,它们的应用就像它们是单个样式表中的导入或级联列表一样。
      参数:
      source - XML 源文档。
      media - 要匹配的媒体属性。可以为空,在这种情况下将使用首选模板(即 alternate = no)。
      title - 要匹配的标题属性的值。可能为空。
      charset - 要匹配的字符集属性的值。可能为空。
      返回:
      A Source Object 适合传递给 TransformerFactory
      抛出:
      TransformerConfigurationException - 如果在解析 source 期间发生错误,则会抛出 Exception
      参见:
    • 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。
    • setFeature

      public abstract void setFeature(String  name, boolean value) throws TransformerConfigurationException

      为此工厂创建的 TransformerFactoryTransformerTemplate 设置一个功能。

      功能名称是完全限定的 URI s。实现可以定义自己的特性。如果它创建的 TransformerFactoryTransformer s 或 Template s 不支持该功能,则会抛出 TransformerConfigurationException TransformerFactory 可以公开一个特征值但无法更改其状态。

      所有实现都需要支持 XMLConstants.FEATURE_SECURE_PROCESSING 功能。当特征是:

      参数:
      name - 特征名称。
      value - 是特征状态 truefalse
      抛出:
      TransformerConfigurationException - 如果它创建的这个 TransformerFactoryTransformerTemplate 不支持此功能。
      NullPointerException - 如果 name 参数为空。
    • getFeature

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

      功能名称是完全限定的 URI s。实现可以定义自己的特性。如果它创建的 TransformerFactoryTransformerTemplate 不支持该功能,则返回 falseTransformerFactory 可以公开一个特征值但无法更改其状态。

      参数:
      name - 特征名称。
      返回:
      功能的当前状态,truefalse
      抛出:
      NullPointerException - 如果 name 参数为空。
    • setAttribute

      public abstract void setAttribute(String  name, Object  value)
      允许用户在底层实现上设置特定属性。此上下文中的属性定义为实现提供的选项。如果底层实现无法识别该属性,则会抛出 IllegalArgumentException

      所有实现 JAXP 1.5 或更新版本的实现都需要支持 XMLConstants.ACCESS_EXTERNAL_DTD XMLConstants.ACCESS_EXTERNAL_STYLESHEET 属性。

      参数:
      name - 属性的名称。
      value - 属性的值。
      抛出:
      IllegalArgumentException - 当实现无法识别该属性时。
    • getAttribute

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

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

      public abstract ErrorListener  getErrorListener()
      获取 TransformerFactory 的错误事件处理程序。
      返回:
      当前的错误处理程序,它永远不应为 null。