XML解析的两种方式比较DOM与Sax

一、DOM解析方式思想

对于DOM解析,首先是将整个XML文档读到内存中,形成一颗倒状的DOM树,如下图:
在这里插入图片描述
从上面的DOM树,我们应该很清楚Dom的解析思想了:其实就是在我们的程序对xml进行操作之前,DOM解析器就把整个文档读取到内存中去了。

知道了Dom解析的思想后,我们对其方式进行的利弊进行一下分析:

(1)、优点:

a.能够从整体上去把我文档结构,十分方便对xml文档的节点进行crdu操作;

b.只需要解析一次拿到dom对象之后就可以重复使用该对象进行操作,可以减少解析的次数

(2)、缺点:

a.解析过程比较慢,需要将整个文档都解析完成后才能进行操作;

b.需要将整个文档的内容都加载到内存中,比较消耗内存,当文档过大时,这种方式对内存的要求是很大的;

c.如果只关注文档的一小部分,会造成资源的极大浪费;

d.解析的时候,会有延迟,因为每次都是从头开始遍历。

二、SAX解析方式思想

SAX解析方式是基于事件驱动的方式来解析的。当解析器发现元素开始、元素结束、文本、文档的开始或结束时,会触发相应的方法去处理。

同样的,我们对上面的XML文档也通过画图的方式来说明SAX的解析思想:
在这里插入图片描述
同样,我们对SAX的解析方式思想通过上面的图的形式,可以清楚的描述其实现解析的思想。

下面,谈谈SAX解析方式的优点和缺点:

(1)优点

a.不需要等待整个xml文档全部加载到内存中,当解析到某一部分的时候自动触发到对应的方法去做处理,处理的效率比较高;

b.不需要将整个文档加载到内存中去,对内存的要求比较低,无论多大的xml理论上都可以解析,而且没有延迟。

(2)缺点

a.每次解析都只能处理一次,下次要再次处理还要重复的执行解析操作;

b.只能进行查询,不能进行增删改的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值