加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML系列:(3)XML解析

发布时间:2020-12-16 02:23:43 所属栏目:百科 来源:网络整理
导读:xml文件除了给开发者看,更多的情况 使用程序读取xml文件的内容 ,这叫做 xml解析 。 1、XML解析方式和工具 1.1、XML解析方式 XML解析分为两种方式:DOM和SAX。 DOM:W3C组织推荐的一种解析方式。 SAX:( S imple A PI for X ML) 不是官方标准,它产生自XML


xml文件除了给开发者看,更多的情况使用程序读取xml文件的内容,这叫做xml解析



1、XML解析方式和工具

1.1、XML解析方式

XML解析分为两种方式:DOM和SAX。

DOM:W3C组织推荐的一种解析方式。

SAX:(Simple API for XML) 不是官方标准,它产生自XML社区,几乎所有的XML解析器都支持它。

JDK6.0提供新的解析方式StAX(Stream API for XML)

1.2、XML解析工具

DOM解析原理:

1)JAXP (oracle-Sun公司官方)

2)JDOM工具(非官方)

3)Dom4J工具(非官方) 三大框架(默认读取xml的工具就是Dom4j)

SAX解析原理

1)Sax解析工具(oracle-sun公司官方)

2、DOM与SAX/StAX的区别

DOM解析

会把整个XML载入内存,以DOM树的形式存储,支持回写

如果XML文档特别大,就会消耗计算机大量内存,容易导致内存溢出

SAX/StAx解析

相比DOM是一种更为轻量级的方案

采用串行方式读取,基于事件驱动解析

编程相对复杂

不支持回写,无法在读取过程中修改XML数据


DOM解析 vs SAX解析
序号 视角 DOM解析 SAX解析
1 原理 一次性加载xml文档,不适合大容量的文件读取 加载一点,读取一点,处理一点。适合大容量文件的读取
2 支持操作 DOM解析可以任意进行增删改读 SAX解析只能读取
3 是否支持回读 DOM解析任意读取任何位置的数据,甚至往回读 SAX解析只能从上往下,按顺序读取,不能往回读
4 编程方法 DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发者编码比较简单。 SAX解析基于事件的编程方法。java开发编码相对复杂。




3、DOM解析模型

xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树, 通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容。 缺点: 不适合读取大容量的xml文件,容易导致内存溢出。

wKiom1c1h1CAb14WAADA3EciiK4025.png


Document树只有一个根节点,树上的分支叫节点(Node)。文档中所有的元素、属性、文本都会被解析成Node节点(标签节点Element、属性节点Attribute、文本节点Text、注释节点)。


wKioL1c1iDLy6pZSAAByw7x-Keg735.png

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读