我正在寻找最新的,内存效率高且高性能的Java XML解析API。
我需要解析3 MB到5 MB的XML文件。

我在Google上做了搜索,并了解了Sun Java Streaming XML Parser(SJSXP),Woodstox比DOM和SAX快得多。两者都使用StAX API。
*这些技术不支持模式验证。

Aalto XML处理器还实现了StAX API。

我尚未找到有关这些技术性能的具体发现。

在内存高效,高性能和易用性方面,哪一个最好?

最佳答案

以下是一些可能相关的链接:

  • Stax表示数据绑定:http://technotes.blogs.sapo.pt/1708.html
  • 有效使用Woodstox:http://www.cowtowncoder.com/blog/archives/2006/06/entry_2.html
  • 使用Woodstox加速XSLT:http://www.cowtowncoder.com/blog/archives/2009/04/entry_235.html

  • 关于性能:SJSXP是最慢的。它只是Xerces的内部重新包装,包装在Stax API中。这对性能有一些负面影响(因为它不是真正为拉解析设计的)。 Woodstox更快一些。小文档和书写的速度快得多,而解析较长的文档时的差异也较小。

    而Aalto则是迄今为止这三者中最快的,尤其是对于解析而言。通常比Woodstox或SJSXP快50%-100%。缺点之一是它不处理DTD(因此不处理外部实体;它处理预定义和字符实体)。

    免责声明:我是Woodstox和Aalto的作者;以及SJSXP的贡献者(错误修复)

    07-24 09:27