DOM与SAX的区别

来源:互联网 发布:花生壳用自己的域名 编辑:程序博客网 时间:2024/05/22 06:23

DOM与SAX的区别

****** DOMSAX解析模式的区别?********

 

SAX

DOM

依序读入文件并产生相对应事件,可以处理任何大小的XML文件

在内存中建立文件树,不适于处理大型的XML文件。

只能对文件按顺序剖析一遍,不支持对文件的随意存取

可以随意存取文件树的任何部分,没有次数限制

通常只去能读取XML文件内容,修改起来很麻烦

可以随意修改文件树,从而修改了XML文件

开发上比较复杂,需要自己来制作事件处理器

易于理解,易于开发

对工作人员更灵活,可以用SAX建立自己的XML对象模型

已经在DOM基础之上建立了文件树

 

基于SAX(事件的处理)的优点和缺点


优点:这种处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX 还比它的替代者 DOM 快许多。
缺点:由于应用程序没有以任何方式存储数据,使用 SAX 来更改数据或在数据流中往后移是不可能的。

 

基于DOM(树)的处理的优点和缺点


优点:

    1)由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。

  2)它可以在任何时候在树中上下导航,而不是像 SAX 那样是一次性的处理。

    3)DOM 使用起来也要简单得多。
缺点:

    1)在内存中构造这样的树涉及大量的开销。大型文件完全占用系统内存容量的情况并不鲜见。

    2)创建一棵DOM树可能是一个缓慢的过程。

0 0