我正在寻找最新的、节省内存和高性能的javaXML解析API。我需要解析3 MB到5 MB的XML文件。
我在谷歌上搜索了一下,了解了Sun Java Streaming XML Parser(SJSXP),Woodstox比DOM&萨克斯。两者都在使用StAX API。*这些技术不支持模式验证。
Aalto XML处理器还实现了StAX API。
我还没有发现关于这些技术性能的具体发现。
在内存高效、高性能和易用性方面,哪一个最好?
以下是一些可能相关的链接:
- 用于数据绑定的Stax impls: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中。这对性能有一些负面影响(因为它并不是为pull解析而设计的)。Woodstox稍微快一点;对于小文档和写作速度要快得多,解析长文档时差异更小。
Aalto是三个中速度最快的,尤其是在解析方面。它通常比Woodstox或SJSXP快50%-100%。一个缺点是它不处理DTD(因此也不处理外部实体;它处理预定义的和字符实体)。
免责声明:我是Woodstox和Aalto的作者;以及SJSXP(错误修复)的贡献者
以上查询的一些有用链接:
http://www.developerfusion.com/article/84523/stax-the-odds-with-woodstox/(2010年6月)
http://www.ibm.com/developerworks/opensource/library/os-ag-renegade15/(2007年7月)
性能基准详细信息:
http://www.xml.com/pub/a/2007/05/09/xml-parser-benchmarks-part-1.html(2007年5月)