码迷,mamicode.com
首页 > 其他好文 > 详细

无废话XML--XML解析(DOM和SAX)

时间:2014-12-26 18:45:56      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:dom   xml   sax   xml解析   

  • XML处理模式

处理XML有2种方式,DOM和SAX。一般的实际开发中,这2种使用的不多,直接用dom4j来解析XML就好了,包括CRUD等操作都很方便的。这里介绍的DOM和SAX是比较底层的,具体的API在jdk中可以查到的。

技术分享技术分享技术分享


  • 一、 DOM 文档对象模式
    1.DOM特点:
      以树型结构访问XML文档。 一棵DOM树包含全部元素节点和文本节点。可以前后遍历树中的每一个节点。
      整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能。      将整个文档调入内存(包括无用的节点),浪费时间和空间。      一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU)情况下使用。
    2.DOM树与节点
      XML文档被解析成树型结构。      树由节点组成。共有12种不同的节点。      节点可以包含其他节点(依赖于节点的类型)。      父节点包含子节点。叶子节点没有子节点。
    3.节点类型
      知道下面这3种比较常用的就好了:Document(节点)      Element(元素)      Attribute(属性)
      


  • 二、 SAX 基于事件处理模式
    解析器向一个事件处理程序发送事件,比如元素开始和元素结束,而事件处理器则处理该信息。
    然后应用程序本身就能够处理该数据。原始的文档仍然保留完好无损。


  • 三、 比较DOM与SAX:
    DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
    优点:1.提供随机定义元素操作,来回移动指针。         2.将整个XML文件一次性加载到内存,形成虚的内存树。
    缺点:1.如果XML文件较大,内存空间占用较大。         2.强制将较大的XML文件加载到内存中,有可能损害文件         3.功能通用性

    SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序逐行读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对      XML的顺序访问 


    总结:DOM在做CRUD都比较方便,但不适合解析大的XML文档。SAX占用资源比较少,但只适合读取XML。

无废话XML--XML解析(DOM和SAX)

标签:dom   xml   sax   xml解析   

原文地址:http://blog.csdn.net/u011794238/article/details/42173795

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!