2011-12-27 17 views
1

我有大量需要从1格式转换为另一种格式的XML文件(3000多个独特节点)。我主要关心的是速度和内存使用情况。除了使用StAX以编程方式解析输入XML并使用StAX创建目标XML之外,是否还有其他XSLT替代方案?除XSLT之外,还有其他用于XML到XML转换的替代方案吗?

我知道有一个STX项目,但我不认为它正在维护。

+2

Saxon EE支持流式传输。 – 2011-12-27 18:03:50

+4

3000个节点不是“巨大的”。至于效率,它是高效算法的结果,而不是程序设计语言的选择。实现O(N^3)算法的汇编程序语言程序已经被证明比执行更高效算法的基本程序执行速度慢数千倍 - 甚至是中等的N值。定义确切的问题,然后人们可以提供XSLT中的高效实现。你有什么想法需要优化?引用Knuth:“*过早优化是所有邪恶的根源*” – 2011-12-27 18:20:17

+0

@MaxToro谢谢你的好建议。 – 2011-12-27 18:28:51

回答

2

如果您非常关心速度和内存使用情况,您可能需要编写自己的SAX变压器。这是否容易取决于转换的复杂性。

也就是说 - 3000个节点并不多,我用Apache Cocoon来转换更大的文档。 STX也运作良好。没有维护并不一定意味着它没有工作。

更好地尝试现有的解决方案,然后根据需要进行改进。

0

我发现JDom有助于简单编程操纵Java中的XML结构。