我知道使用
在Java中将XSL转换应用于XML的方法javax.xml.transform.Transformer中
这种方法适用于小型XML数据。但是当涉及到基于DOM的方法由于内存限制而难以使用的大型XML数据时,这就变成了一场噩梦。
我想知道将XSL转换应用于大型XML的最佳方法是什么。是否有任何变压器在SAX而不是DOM上运行?
答案 0 :(得分:3)
Java中有不同的XSLT处理器实现JAXP。 Saxon 9.3是一个XSLT 2.0处理器,它还实现了XSLT 3.0工作草案的一些流功能,请参阅http://www.saxonica.com/documentation/sourcedocs/streaming.xml。 即使你没有使用最新的实验性Saxon 9.3功能,通常最好不要将DOMSource提供给处理器,而是让处理器通过提供StreamSource来使用自己的树实现。
答案 1 :(得分:2)
如果您正在使用大型XSLT和/或使用多个XSLT,那么编译和缓存xslt是提高性能的好选择。本文介绍了如何cache xslt's