XOM v / s javax.xml.parsers

时间:2009-06-16 13:11:38

标签: java xml xom

我想阅读简单的XML文件.i发现 Simple way to do Xml in Java

还有一些解析器只是想确保使用XOM解析器而不是太阳解析器的优势

有什么建议吗?

3 个答案:

答案 0 :(得分:6)

与标准W3C DOM相比,XOM 非常快。如果这是你的首要任务,那就更好了。

但是,它仍然是DOM类型的API,因此它不具有内存效率。它不是SAX或STAX的替代品。

答案 1 :(得分:4)

您可能想要查看此question about the best XML library及其顶部(XOM)答案;关于XOM优点的大量细节。 (如果事情不清楚,请发表评论;PeterŠtibraný似乎从内到外都知道XOM。)

如前所述,与标准javax.xml相比,XOM在大多数任务中都非常快速和简单。有关示例,请参阅有关使用Java读取XML文件的最简单方法的问题中的this post。我收集了一些很好的例子,使得XOM看起来非常好(而且javax.xml相当笨拙)。 : - )

所以我个人在评估之后就开始喜欢XOM了(正如你在链接的帖子中看到的那样);对于任何新的Java项目,我最有可能选择XOM进行XML处理。我发现的唯一缺点就是它doesn't directly support streaming XML(与我来自的dom4j不同),但是a simple workaround它可以很好地传输。

答案 2 :(得分:1)

您如何访问数据?

如果是一次通过,那么您不需要在内存中构建树。您可以使用SAX(快速,简单)或StAX(更快,不那么简单)。

如果您需要将树保留在内存中以进行导航,XOMJDOM是不错的选择。 DOM最后选择,无论是1级,2级还是3级,有或没有扩展名。

Xerces,它是Java附带的解析器(尽管你应该从Apache获得更新版本而不使用与Java捆绑的版本,即使在6.0中),也有一个名为XNI的流本地接口。 / p>

如果你想在链中挂钩其他预制零件,通常SAX或StAX工作得很好,因为他们可能会在内存中构建自己的模型。例如,Saxon XSLT / XQuery引擎可以与DOM,SAX或StAX一起使用,但在内部构建TinyTree(默认)或DOM(可选)。 DataDirect XQuery也适用于SAX,StAX或DOM,但真的喜欢StAX。