在我的Web应用程序中,我需要使用Saxon TransformerFactory才能使用XSLT 2.0,但是我不能使用setProperty方法,因为我在Web服务器上没有此权限,并且没有安全管理器。

因此,我读到应该可以做到这一点:



我在WEB-INF/lib/saxon9.jar中找到了此文件,但是当我确定TransformerFactory时,总是选择默认工厂而不是Saxon工厂。

如何选择撒克逊变压器厂?

谢谢

最佳答案

正确的方法是在获取新的TransformerFactory时指定工厂类。

我认为调用特定的工厂实现不起作用-我相信仍可以返回默认的系统转换器(至少那是在类路径中包含xalan和saxon时发生的事情)。

例:

TransformerFactory tFactory = TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl",null);

或撒克逊人
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);

Javadocs:

07-28 13:24