代码之家  ›  专栏  ›  技术社区  ›  andersonbd1

来自java的libxml2

  •  7
  • andersonbd1  · 技术社区  · 14 年前

    Fastest XML parser for small, simple documents in Java 但还有一些细节。

    http://www.xml.com/pub/a/2007/05/16/xml-parser-benchmarks-part-2.html

    声称libxml2的解析速度比任何java解析器都快一个数量级。我不确定我是否相信,但它引起了我的注意。 有人试过从jvm使用libxml2吗?如果是这样的话,它比javadom解析(xerces)快吗? 我想我仍然需要我的javadom结构,但是我猜从c结构的dom复制到javadom应该不会花太长时间。我必须有java dom-sax在这种情况下帮不了我。

    更新 :我刚刚为libxml2编写了一个测试,它并不比xerces快。。。当然,我的c代码能力是非常生锈。

    我把问题扩大了一点: why is sax parsing faster than dom parsing ? and how does stax work? 我对抛弃dom的可能性持开放态度。

    谢谢

    2 回复  |  直到 7 年前
        1
  •  2
  •   Buhake Sindi Tesnep    14 年前

    在Java中,StAX JSR-173 通常被认为是解析XML最快的方法。StAX有多种实现 Woodstox 实施通常被认为是快速的。

    为了提高性能,我会避免DOM。你在用XML做什么?如果您最终将其作为对象处理,那么您应该考虑使用OXM解决方案。标准是JAXB JSR-222 MOXy (我是技术负责人)甚至可以让您进行局部映射,从而提高性能:

        2
  •  0
  •   Cephalopod    14 年前

    首先,你的问题不包含问题。你想知道什么?

    如果您真的想加快处理速度,请尝试摆脱dom(为什么需要它?也许我们可以一起想出一个解决办法)。如果所有xml文件都具有相同的模式,请使用您自己的专用数据模型(和SAX解析器)。

    如果只使用xml的一个子集(即没有名称空间,只有很少的属性),可以考虑编写自己的解析器,直接生成更高效的java对象(但我不建议这样做)。