我通常在JDK(JDK 7)中使用XSLT支持进行XSLT转换。最近我遇到了一个相当大的XML文档,并且将XSLT转换应用于此(甚至非常基本的转换)会导致使用大量内存。增量/流式XSLT转换?
我一直很小心地处理所有的流处理,但似乎JDK中的XSLT引擎(它似乎是一个修改过的Xalan)总是先在内存中建立一个DOM。显然这不是我想要的。
现在我发现单独提供的Xalan(从2007年开始的2.7.1版!)确实有一个用于进行增量转换的API。所以,虽然这似乎工作,我实际上希望我的代码运行在股票JDK上,而不告诉用户摆弄任何背书文件夹。
在Java中执行增量式XSLT转换的最佳方式是什么,以便我的代码与未修改/正版JDK安装兼容?
更新: 这个最近更新的问题密切相关:What is the Most Efficient Java-Based streaming XSLT Processor?
尝试此链接 - http://www.devx.com/xml/Article/34677/1954 - 请参阅标题为“迭代2:分而治之JAXP XSLT转换”一节 – kjp