XML解析:JDOM还是RegEx?哪个更快?

时间:2011-03-21 09:52:23

标签: java regex eclipse-plugin xml-parsing jdom

我的同事需要开发一个Eclipse插件,该插件必须解析多个XML文件以检查客户端强加的编程规则(例如,没有xsl:for-each,或者没有声明但未使用的命名空间)。有大约1000个文件需要定期解析,每个文件包含大约300-400行。

我们想知道哪种解决方案更快。我在想JDOM,他在想RegEx。

任何人都可以帮助我们决定哪个最好?

由于

4 个答案:

答案 0 :(得分:7)

DOM,请放下手。 RegEx会很疯狂。使用适用于该作业的工具。

答案 1 :(得分:6)

您无法使用RegEx解析递归结构。因此,除非你有非常简单的XML文件,否则XML解析会更快,代码也会有点理智(所以你不会花费无数的时间来查找错误)。

由于文件非常小,JDom将使您的工作变得更加轻松。对于较大的文件,您必须使用SAX或类似的解析器(因此您不必将整个文件保留在RAM中)。

答案 2 :(得分:3)

我尝试使用正则表达式解析XML,您正在进入痛苦的世界。如果速度很重要,使用基于事件的API可能比DOM / JDOM快一点。

答案 3 :(得分:2)

如果所有检查都是简单的“否”或没有命名空间,那么StAX解析器最好,因为您只是通过它传输文档,获取所有启动元素的“事件”,然后进行检查。为此,解析器需要相对较少的内存。

如果你需要参考检查,DOM可能会更好,因为你可以轻松地走树(也许是通过xpath)。