2010-06-16 101 views
2

我目前正在研究一个涉及大量使用xsl转换的Java web项目(Spring)。样式表很少改变,所以它们当前被缓存。我正在考虑通过将xsl-s编译到类文件中来提高性能,以便不必在每个请求上解释它们。将.xsl文件编译为.class文件

我是Java新手,所以我不太了解这个生态系统。这样做的最好方法是什么(库,方法等)?

谢谢,
亚历

回答

3

您可能不需要编译为.class来实现您的目标,您可以在每次运行时编译一次xsl,并为所有转换重新使用编译后的实例。

要做到这一点,你创建一个Templates对象,如:

TransformerFactory factory = TransformerFactory.newInstance(); 
factory.setErrorListener(new ErrorListener(...)); 
xslTemplate = factory.newTemplates(new StreamSource(...)); 

,并使用模板来获得一个变压器做的工作:

Transformer transformer = xslTemplate.newTransformer(); 

根据您使用XSL库中的里程可能不同。

1

考虑使用Gregor/XSLT编译器