SAX解析与DOM解析对比
2016-04-08 19:59
225 查看
DOM:即Document Object Model,属于文档驱动。解析处理XML文件时,需要读取整个XML文档,存在内存中并建立DOM树,生成DOM树上的每个Node对象。DOM树生成后,可以随意存放或读取文件树的任何部分,并且可以重复读取,没有次数限制。
SAX:即Simple Api for XML,属于事件驱动,不需要读入整个文档,读入文档的过程也是SAX解析的过程,事件驱动是指一种基于回调(callback)机制的程序运行方法。SAX对内存要求比较低,因为它让开发人员自己决定所要处理的标签,尤其是当开大人员需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。
综上:
DOM优缺点:可以读取以及修改文件树任何部分,但是由于解析之前需要把文档存至内存中并生成文档树(生成文档树比较耗时),所以解析速度较慢以及占用内存较大,适合解析中小型文档。
SAX优缺点:只能顺序访问读取,不能修改,可以部分读取文档,故解析速度快,适合解析大型文档,但由于需要建立自己额XML对象模型,增加了开发难度。
SAX:即Simple Api for XML,属于事件驱动,不需要读入整个文档,读入文档的过程也是SAX解析的过程,事件驱动是指一种基于回调(callback)机制的程序运行方法。SAX对内存要求比较低,因为它让开发人员自己决定所要处理的标签,尤其是当开大人员需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。
综上:
DOM优缺点:可以读取以及修改文件树任何部分,但是由于解析之前需要把文档存至内存中并生成文档树(生成文档树比较耗时),所以解析速度较慢以及占用内存较大,适合解析中小型文档。
SAX优缺点:只能顺序访问读取,不能修改,可以部分读取文档,故解析速度快,适合解析大型文档,但由于需要建立自己额XML对象模型,增加了开发难度。
相关文章推荐
- [学习OpenCV攻略][016][RedHat下安装OpenCV]
- 线程通信
- poj 3159 Candies
- marquee
- POJ 2429 GCD & LCM Inverse
- bzoj2141 树状数组套Treap树
- android 图片文字轮播效果(图片和文字自动滚动)
- HDU 5446 Unknown Treasure Lucas+CRT
- DNS 理论
- 浅谈inode
- javascript中Uint8Array类型的subarray方法陷阱
- c++学习笔记(一)--如何在mac 下编译c文件
- poj2761(Treap)
- 求阶乘
- poj 2152 Fire 树形dp
- Android简单获取手机联系人姓名电话号码
- leetcode:Contains Duplicate
- 纸片:二分法
- Thrift,protobuf,json,xml,binary之间的对比
- 近一个月的学习计划!4-8