我正在使用 JAXP XSLT API (javax.xml.transform) 来转换 xml 文件。

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer(xslSource);
transformer.transform(inputSource, outputResult);

TransformerFactory 的 javadoc 说:
它使用以下有序查找过程来确定要加载的 TransformerFactory 实现类:
  • 使用 javax.xml.transform.TransformerFactory 系统属性。
  • 使用 JRE 目录中的属性文件“lib/jaxp.properties”。这
    配置文件是标准的 java.util.Properties 格式和
    包含实现类的完全限定名称
    键是上面定义的系统属性。 jaxp.properties
    JAXP 实现只读取一次文件及其值
    然后缓存以备将来使用。如果文件不存在时
    第一次尝试从中读取,没有进一步的尝试
    检查它的存在。无法更改值
    为 jaxp.properties 中的任何属性读取后
    第一次。
  • 使用服务 API(详见 JAR
    规范),如果可用,以确定类名。这
    服务 API 将在文件中查找类名
    jar 中的 META-INF/services/javax.xml.transform.TransformerFactory
    运行时可用。
  • 平台默认 TransformerFactory 实例。

  • 我想知道如何确定哪个是默认的 TransformerFactory 实例?

    最佳答案

    这里的“平台”是您使用的 Java 编译器/运行时的 Java 语言。因此,“平台默认值”意味着 JDK 决定的任何内容。对于 Oracle JDK,它是 JDK 中内置的 Xalan XSLT 1.0 引擎的一个版本。不同的 JDK 可以使用不同的默认值。

    关于java - 默认的 TransformerFactory 是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29450535/

    10-11 10:44