Xsl转换大xmls

时间:2011-01-19 11:26:33

标签: java xml xslt sax

我知道使用

在Java中将XSL转换应用于XML的方法
  

javax.xml.transform.Transformer中

这种方法适用于小型XML数据。但是当涉及到基于DOM的方法由于内存限制而难以使用的大型XML数据时,这就变成了一场噩梦。

我想知道将XSL转换应用于大型XML的最佳方法是什么。是否有任何变压器在SAX而不是DOM上运行?

2 个答案:

答案 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