寻找 xalan TransformerFactoryImpl 的选项

Posted

技术标签:

【中文标题】寻找 xalan TransformerFactoryImpl 的选项【英文标题】:Looking options for xalan TransformerFactoryImpl 【发布时间】:2012-07-17 12:40:02 【问题描述】:

我正在使用基于 SAX 的 xml 解析器,一切正常,但我在日志中收到以下警告消息

com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl is Sun proprietary API and may be removed in a future release 
                            transformerFactory = new TransformerFactoryImpl(); 
                                                      ^ 

我想摆脱这个,有人可以建议我使用 TransformerFactoryImpl 的其他选项吗?

提前致谢,

【问题讨论】:

【参考方案1】:

您可以使用 TransformerFactory.newInstance() 代替:

javax.xml.transform.TransformerFactory tf =       
        javax.xml.transform.TransformerFactory.newInstance();

Javadocs 中告诉了它如何确定要加载的实现。

如果需要注意您在幕后使用的实现与当前使用的完全相同,则只需在获取 TransformerFactory 实例之前设置以下系统属性即可。我认为使用相同的实现很方便,只要您摆脱错误消息。

System.setProperty("javax.xml.transform.TransformerFactory",          
                   "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");

【讨论】:

你好@Mikko,我最初尝试了 javax.xml.transform.TransformerFactory 但我遇到了以下异常。
 无法转换 javax.xml.transform.stax.StAXSource 类型的源:javax.xml.transform.TransformerException:无法在 org.apache 转换 javax.xml.transform.stax.StAXSource 类型的源.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:366) 
我错过了设置系统属性。谢谢您的帮助。非常感谢,钦梅帕塔克

以上是关于寻找 xalan TransformerFactoryImpl 的选项的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Android 上从 Xalan 调用 Java 扩展函数?

org.apache.xalan.processor.TransformerFactoryImpl 上的 AbstractMethodError

TransformerFactory 和 Xalan 依赖冲突

将 Xalan 与 Saxon 一起使用

如何使用 Visual Studio 2010 构建 Xalan-C?

是否可以避免使用 xalan TransformerFactory?