[align=left]
XML--DOM解析和SAX解析的特点和差别[/align]1、 DOM解析 – 文档对象模型解析
.是W3C指定的一套规范标准,它不是专门为Java或其他语言而制定的
核心是按树形结构处理数据,要先将所有文件读取到
内存中形成DOM树,DOM解析器读入xml文件并在内存中建立一个结构一模一样的“树”,这树的节点和xml各标记对应,通过操纵此“树”来处理xml中的文件。
优点:
1.DOM同时支持读和写
2.可以对树进行遍历,可直接访问节点,访问效率高
3.可以随时访问树中的节点,并能进行增删查改
缺点:
xml文件很大时,建立的“树”也会大,所以会大量占用内存。
解析速度慢,只适合解析小型文档(要在内存中生成节点树,而生成树是比较费时的)
耗费系统的内存资源
2、SAX解析
核心是
事件处理机制,解析器根本不创建任何对象,它只是将事件传递给您的应用程序
一次性的处理方式
优点:
1.边读边解析,以流的方式读XML,应用于大型
XML文档
2.解析速度快
3. 不必解析整个文档;它可以在某个条件得到满足时停止解析。
缺点:
只支持读,不能修改,
只能顺序解析,
访问效率低
区别:
1、DOM是基于内存的,不管文件有多大,都会将文件的内容事先装载到内存中,因 而需要占很大的内存空间。
SAX基于事件,当事件被触发时,从头开始解析文件,无需事先装载,当获得需要的数据,即可停止,所以占用内存空间很少
2. DOM 可以读取XML,也可以向XML文档中插入数据
SAX 只能对XML 进行读取,不能插入数据(sax的缺点)
3. DOM 可以访问指定的元素进行随机访问
SAX 只能从头开始执行,顺序解析,只进行一次。