我通常使用 JDK (JDK 7) 中的 XSLT 支持来进行 XSLT 转换。最近我遇到了一个相当大的 XML 文档,并且对它应用 XSLT 转换(即使是非常基本的转换)会导致使用大量内存。
我一直小心翼翼地进行所有处理流式处理,但似乎 JDK 中的 XSLT 引擎(似乎是经过修改的 Xalan)总是首先在内存中构建 DOM。显然这不是我想要的。
现在我发现单独提供的 Xalan(2007 年的 2.7.1!)确实有一个用于进行增量转换的 API。因此,虽然这似乎确实有效,但我实际上希望我的代码在股票 JDK 上运行,而不告诉用户摆弄任何认可的文件夹。
在 Java 中进行增量 XSLT 转换以使我的代码与未修改/库存 JDK 安装兼容的最佳方法是什么?
更新:这个最近更新的问题密切相关:什么是最高效的基于 Java 的流式 XSLT 处理器?