Mar*_*uks 5 java xsl-fo xalan xslt-1.0
我正在使用它javax.xml.transform.Transform来将 XML 文件转换为 PDF。这本身工作得很好,但该项目的某些部分正在使用 Xalan,它实现了自己的TransformerFactory,并且其中的某些内容不适用于西里尔语。
我在https://xml.apache.org/xalan-j/usagepatterns.html发现有一个属性用于定义使用的工厂:
TransformerFactory 是一个抽象类,具有静态 newInstance() 方法,该方法实例化由 javax.xml.transform.TransformerFactory 系统属性指定的具体子类。
此系统属性的默认设置是 org.apache.xalan.processor.TransformerFactoryImpl。
我的问题是:如何设置此属性以不使用 Xalan?
执行程序时,可以使用以下标志从命令行静态设置它-D:
java -Dorg.apache.xalan.processor.TransformerFactoryImpl=com.xyz.YourFactory YourApp
Run Code Online (Sandbox Code Playgroud)
或者在您的应用程序中动态使用System.setProperty():
System.setProperty("org.apache.xalan.processor.TransformerFactoryImpl",
"com.xyz.YourFactory");
Run Code Online (Sandbox Code Playgroud)
请注意,您需要使用工厂类的完全限定类名,并且工厂需要位于您的类路径上才能使它们中的任何一个正常工作。