xml DOM和sax概念的总结

1.DOM、SAX的比较

(1)DOM的优点和不足 

         首先,DOM是面向对象的,功能强大,使用起来要简单的多。其次,由于DOM树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构进行更改。它可以在任何时候在树中导航,而不像sax那样是一次性的处理。

         但是,另一方面,在内存中构造这样的树设计大量的开销。大型文件完全占用系统内存容量的情况并不少见。此外,创建一棵DOM树可能是一个缓慢的过程。

(2)SAX的优点和不足

         相比于文档对象模型DOM,SAX是读取和操作XML数据的更快速、更轻量的方法。SAx允许你在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。它不涉及DOM所必需的开销和概念跳跃。

         另一方面,SAX也有一些不足。DOM所提供的丰富的标准功能在SAX中是没有的。SAX事件是无状态的。当SAX解析器在XML文档中发现文本时,他就向代码发送一个事件。该事件仅仅发现文本,但并不告诉你什么元素包含那个文本。如果想知道这一点,则必须自己编写状态管理代码。SAX事件不是持久的。如果应用程序需要一个数据结构来对XML文档建模,则必须自己编写那样的代码。如果需要从SAX事件访问数据,并且没有把那个数据存储在代码中,那么你不得不再次解析该文档。

2.如何在SAX和DOM之间选择

 (1)应用程序的目的

          如果打算对数据做出更改并将它输出为XML,那么在大多数情况下,DOM是适当的选择。SAX也能更改数据,但是过程要复杂的多,因为你必须对数据的一份拷贝而不是对数据本身作出更改。

 (2)数据容量

         对于大型文件,SAX是更好的选择。

(3)数据将如何使用

         如果只有数据中的少量部分会被使用,那么使用SAX来将该部分数据提取到应用程序中可能更好。

(4)对速度的需要

         SAX实现通常比DOM实现更快。

SAX和DOM不是相互排斥的,你可以用DOM来创建SAX事件流,也可以使用SAX来创建DOM树。

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值