Java中有哪些解析XML的类库?有什么特点?

1. DOM(Document Object Model)

  • 符合官方 W3C 标准
  • 是以层次结构组织的节点
  • 可以在层次结构中寻找特定信息
  • 需要加载整个文档、构造层次结构

优点:可获取和操作 xml 任意部分的结构和数据
缺点:需加载整个 XML 文档,消耗资源大

2. SAX(Simple API for XML)
SAX 解析器基于事件的模型,解析 XML 文档时可以触发一系列事件,解析到期望的节点,可以激活一个回调方法,处理该节点上的数据

优点:

  • 不需要全部加载完 XML 文档,可以在达到期望条件时停止解析
  • 对内存的要求较低,能解析占用存储较大的文档
  • 可以一边加载 XML,一边解析
  • 解析 XML 效率和性能较高

缺点:

  • 需要开发者负责节点的处理逻辑,文档越复杂程序就越复杂
  • 按照 XML 内容单向解析,无法直接定位文档层次,很难同时访问同一个文档中的多处不同数据

3. JDOM(Java-based Document Object Model)
JDOM 自身不包含解析器,使用 SAX2 解析器来解析和验证输入XML文档
包含一些转换器以将 JDOM 表示输出成 SAX2 事件流、DOM 模型、XML 文本文档

优点:API 简单,方便开发
缺点:灵活性较差;性能较差

4. dom4j(Document Object Model for Java)

  • dom4j 包含了超出 XML 文档表示的功能
  • 支持 XML Schema
  • 支持大文档或流化文档的基于事件的处理
  • 可以选择按照 DOM 或 SAX 方式解析 XML 文档

优点:

  • API丰富易用,较直观,方便开发
  • 支持 XPath
  • 性能较好

缺点:

  • 接口较多,API 较为复杂

总结

  • dom4j 性能最佳
  • JDOM 和 DOM 性能不佳,大文档易内存溢出,但可移植。小文档可考虑使用 DOM 和 JDOM
  • XML 文档较大且不考虑移植性问题可用 dom4j
  • 无需解析全部 XML 文档,可用 SAX

给TA打赏
共{{data.count}}人
人已打赏
Java

Java中异常处理机制

2020-7-31 3:53:20

Java

解析xml的方式有哪些?如何选择?

2020-7-31 3:56:40

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索