`

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树。

   

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics