香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 74|回复: 0

java-xml解析(dom,sax,jdom,dom4j)

[复制链接]

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2023-1-7 20:44:41 | 显示全部楼层 |阅读模式

  • DOM
    DOM(Document Object Model,文档对象模型)是 W3C 组织推荐的处理 XML 的一种方式。它是一种基于对象的 API,把 XML 的内容加载到内存中,生成一个 XML 文档相对应的对象模型,根据对象模型,以树节点的方式对文档进行操作。
  • SAX
    SAX(Simple API for XML)是一个基于事件的 XML 文档解析器。与 DOM 解析器不同,SAX 解析器不创建解析树。SAX 是 XML 的流接口,这意味着使用 SAX 的应用程序接收有关正在处理的 XML 文档的事件通知、元素和属性,从文档顶部开始,以文档的结束结束。根元素。
    从上到下读取 XML 文档,识别构成格式良好的 XML 文档的标记。
    令牌的处理顺序与它们在文档中出现的顺序相同。
    向应用程序报告解析器遇到的标记。
    应用程序提供了一个必须向解析器注册的“事件”处理程序。
    随着令牌的识别,处理程序中的回调方法将使用相关信息进行调用。
  • JDOM
    JDOM的目的是成为 Java 特定文档模型,它简化与 XML 的交互并且比使用 DOM 实现更快。
    JDOM 自身不包含解析器。它通常使用 SAX2 解析器来解析和验证输入 XML 文档(尽管它还可以将以前构造的 DOM 表示作为输入)。它包含一些转换器以将 JDOM 表示输出成 SAX2 事件流、DOM 模型或 XML 文本文档。
  • DOM4J
    DOM4J 适用于 DOM、SAX、XPath 和 XSLT。它可以以非常低的内存占用解析大型 XML 文档。
    DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。
  • 总结
DOM和JDOM,需要将xml加载至内存中,为了得到完整的xml树形结构。适合小文件解析使用。
SAX是事件驱动的解析器,占用内存较小。一个 SAX 检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。
DOM4J 是最好的,应用场景较大。适合新手使用,且效能更好。
参考:
http://www.yiidian.com/java-xml/java-jdom-parser.html
https://geek-docs.com/java/java-tutorial/dom.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-7-5 16:03 , Processed in 0.276404 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表