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
看看这里,你会得到一把! http://www.xml.com/pub/rg/Java_Parsers
但是,我见过一些朋友在他们的项目中使用这个。虽然JAXP被广泛使用,但这看起来很有前景。
的Apache Xerces解析器版本1.2.3(http://xerces.apache.org/xerces-j/)
你全部搞定,jhominal? – heretoquestion 2010-08-07 18:44:33
JAXP不是解析器,但Xerces是。 JAXP可以配置为使用Xerces解析器,我相信这是sun jdk中发生的事情。 – 2010-10-29 19:29:20
第一环节是死 – 2013-11-08 14:17:30