【问题标题】:Comparison of XML parsing APIs on the Java SE platformJava SE平台上XML解析API对比
【发布时间】:2010-07-13 13:30:49
【问题描述】:

我目前正在开发一个 RSS 提要阅读器,我想知道哪种 XML 解析 API 最适合它。 (请注意,我不是在寻找 Feed 解析器库——它只是研究 XML API 的起点)

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

  • 易于配置
    • 配置是否在单独的文件中?
    • 是否有合理的默认值?
  • 易于使用
    • 节点导航 - 到同级、到子级、到父级。
    • 名称空间、属性、文本的访问/操作。
    • 类层次结构是经过深思熟虑的还是自然的?
  • 无效的 XML - 会发生什么(什么时候失败?),在以下情况下我可以做什么:
    • 遇到无效字符(在编码或 XML 规范中被禁止)
    • 树形结构无效(例如,由于未转义的 HTML 标记)

以下是一些我认为有用但并不重要的信息:

  • 性能比较
  • 可用实现列表

我目前正在考虑在 JVM 上使用任何 XML API。

  • 它可以是 Java 标准(DOM、SAX、StAX、JAXP)或特定于实现的 API。
  • 它可以是 JVM 上任何语言(Scala、Groovy、Jython、JRuby...)的 API - 只需确保它与标准 Java API 相比添加了一些东西。

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

【问题讨论】:

    标签: java xml parsing jvm-languages


    【解决方案1】:

    jaxp 不是一个实现,而是一个包装器/外观 api,您可以在其中插入多个解析器实现。所以你只剩下 sax、dom 和 stax。现在下面是两个很好的比较,你可以算一下:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • JAXP 不是解析器,但 Xerces 是。 JAXP 可以配置为使用 Xerces 解析器,我相信这就是 sun jdk 中正在发生的事情。
      猜你喜欢
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 2016-12-02
      • 2012-11-17
      相关资源
      最近更新 更多