Java SE平台上XML解析API的比较

问题描述:

我目前正在开发一个RSS提要阅读器,并且我想知道哪个XML解析API最适合这一点。 (请注意,我不是在寻找一个Feed解析器库 - 它只是这个关于XML API研究的起点)Java SE平台上XML解析API的比较

我正在寻找Java平台上各种XML解析API的概要,重点关注下列标准:

  • 易于配置
    • 的是在一个单独的文件中的配置?
    • 是否有合理的默认值?
  • 易于使用的
    • 节点导航 - 兄弟姐妹,孩子,父。
    • 命名空间,属性,文本的访问/操作。
    • 类层次结构是否深思熟虑或自然?
  • 无效XML - 会发生什么(当它失败?),我该怎么办时:
    • 遇到了非法的字符(无论是在编码或XML规范禁止)
    • 树结构是无效的(例如,因为转义的HTML标签)

这里是我会考虑有用的,不是关键的一些信息:

  • 的性能比较
  • 可实现

我目前正在考虑在JVM上的任何XML API列表。

  • 它可以是Java标准(DOM,SAX,StAX,JAXP)或实现特定的API。
  • 它可以是JVM上任何语言的API(Scala,Groovy,Jython,JRuby等) - 只要确保它比标准Java API增加了一些东西。

我认为构建这个线程的一个好方法是每个答案只有一个API。

jaxp不是一个实现,而是一个包装器/外观API,其中你可以插入多个解析器实现。所以你只剩下萨克斯,d姆和斯塔克斯。现在下面是两个很好的comparisions和你做数学题:

http://techstop.abidshafiq.com/2010/02/java-xml-api-comparison/ http://java.sun.com/performance/reference/whitepapers/StAX-1_0.pdf

+0

第一环节是死 – 2013-11-08 14:17:30

看看这里,你会得到一把! http://www.xml.com/pub/rg/Java_Parsers

但是,我见过一些朋友在他们的项目中使用这个。虽然JAXP被广泛使用,但这看起来很有前景。

的Apache Xerces解析器版本1.2.3(http://xerces.apache.org/xerces-j/

+0

你全部搞定,jhominal? – heretoquestion 2010-08-07 18:44:33

+0

JAXP不是解析器,但Xerces是。 JAXP可以配置为使用Xerces解析器,我相信这是sun jdk中发生的事情。 – 2010-10-29 19:29:20