Android 三种常用XML解析方式:SAX,DOM和PULL
来源:互联网 发布:90后相亲知乎 编辑:程序博客网 时间:2024/06/11 05:18
总述:
Android有三种XML解析方式:SAX(即 Simple API for XML) ,DOM( 即 Document Object Model)和Android附带的PULL 解析器解析XML文件。
下面是偶对三种解析方式的理解摘记。
SAX:
SAX采用事件驱动解析方式,边读边解析,当前字符若符合某种事件定义,就触发对应的操作。所以不需要事先读取整个文档,具有占用内存小、解析速度快的优势。但因为SAX是自动将事件推入事件处理器进行处理,进行了封装,所以SAX解析一旦开始,就会一直执行到解析结束,中间不可人为控制解析的结束。
DOM:
DOM解析之前会先将文件完整读取到内存中,以树的结构存储,然后就能遍历出所有节点,获取到相关节点后就可以进行操作。正是因为DOM解析需要事先读取所有内容并存储,所以会占用很大的内存。
PULL:
PULL解析通SAX类似,同采用事件驱动解析方式,边读边解析,内存开销小。不过PULL方式更加灵活,它是非自动的,需要主动获取next事件继续解析,所以相对于SAX的封装,PULL允许随时结束解析过程,可以避免解析冗余信息。
总结:
对于Android移动设备,内存非常宝贵,建议采用SAX和PULL这两种方式解析XML文件。至于SAX和PULL的选择,则看有没有在XML解析中提前结束解析的需求。
Android有三种XML解析方式:SAX(即 Simple API for XML) ,DOM( 即 Document Object Model)和Android附带的PULL 解析器解析XML文件。
下面是偶对三种解析方式的理解摘记。
SAX:
SAX采用事件驱动解析方式,边读边解析,当前字符若符合某种事件定义,就触发对应的操作。所以不需要事先读取整个文档,具有占用内存小、解析速度快的优势。但因为SAX是自动将事件推入事件处理器进行处理,进行了封装,所以SAX解析一旦开始,就会一直执行到解析结束,中间不可人为控制解析的结束。
DOM:
DOM解析之前会先将文件完整读取到内存中,以树的结构存储,然后就能遍历出所有节点,获取到相关节点后就可以进行操作。正是因为DOM解析需要事先读取所有内容并存储,所以会占用很大的内存。
PULL:
PULL解析通SAX类似,同采用事件驱动解析方式,边读边解析,内存开销小。不过PULL方式更加灵活,它是非自动的,需要主动获取next事件继续解析,所以相对于SAX的封装,PULL允许随时结束解析过程,可以避免解析冗余信息。
总结:
对于Android移动设备,内存非常宝贵,建议采用SAX和PULL这两种方式解析XML文件。至于SAX和PULL的选择,则看有没有在XML解析中提前结束解析的需求。
PS:Android View树的解析采用的是PUll解析方式。后续更新demo。
0 0
- Android 三种常用XML解析方式:SAX,DOM和PULL
- android 解析XML最常用的三种方式;DOM解析,SAX解析,PULL解析
- Android解析XML三种方式(PULL、SAX、DOM)
- Android解析XML三种方式(PULL、SAX、DOM)
- android解析XML总结-SAX、Pull、Dom三种方式
- Android解析XML三种方式(PULL、SAX、DOM)
- android之三种方式解析xml(dom,sax,pull)
- Android三种解析XML方式(SAX,DOM,PULL)
- 解析XML(三种解析方式DOM,SAX,PULL)
- android 解析xml的三种方式(DOM,SAX,PULL)之PULL(转载收藏) .
- android 解析xml的三种方式(DOM,SAX,PULL)之SAX(转载收藏)
- 解析xml的三种方式DOM/SAX/PULL
- DOM PULL SAX 三种方式解析XML
- 解析XML三种方式(PULL、SAX、DOM)
- 利用Dom,Sax,Pull三种方式解析xml文件
- XML解析总结(SAX、Pull、Dom三种方式)
- 解析XML总结(SAX、Pull、Dom三种方式)
- XML三种解析方式 SAX、Dom、Pull
- JavaScript escape() 函数详解
- maven依赖中scope的含义
- LoadRunner运行场景,错误---Error: Failed to send data by channels - post message failed.
- MapReduce 图解流程超详细解答(2)-【map阶段】
- 关于页面中文乱码的一些事
- Android 三种常用XML解析方式:SAX,DOM和PULL
- HDOJ 2013 蟠桃记
- MyBatis传入参数与parameterType
- MYSQL学习(四)
- uva 1611 Crane
- 可取消选择的单选框
- Android SDK Manager更新镜像源
- 初识EL表达式
- ubuntu10 nfs搭建