XML解析
Posted 逆流而上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML解析相关的知识,希望对你有一定的参考价值。
- SAX解析
- DOM 解析
- PULL解析
SAX解析------- 基于事件的解析器
原理
对文档进行顺序扫描,当扫描到 文档的开始与结束,元素的开始与结束的位置时,会通知事件处理函数做相应的动作。
(所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。)
优点
解析效率高,占用内存少,适合在android设备上使用
缺点:
1.使用比较麻烦, 需要应用程序自己处理TAG逻辑(维护父、子关系)
2.单向访问,很难同时访问同一个文档中的不同数据,不支持XPath????
DOM 解析---------基于文档驱动的解析器
原理
加载整个文档并构成DOM树之后开始工作,DOM树在内存中是持久的,所以可以在程序中对数据和结构做更改
优点
简单,直观适合xml文件比较小时(因为毕竟是在内存中操作)
缺点
需要加载整个XML文档来构造层次结构,消耗资源大,不适用于大文档
(这个在内存中的文档树将是文档实际大小的几倍。这样做的好处是结构清除、操作方便,而带来的麻烦就是极其耗费系统资源。)
PULL解析----------同SAX,基于事件的模式------第三方开源
原理
不需要像SAX那样监听元素的结束,其实是在开始处就做了大量的处理,PULL解析中需要自己获取产生的事件并作出处理而不是像SAx那样由处理器触发事件。
当解析到一个文档结束时会自动生成EndDocument事件
优点
解析速度快,简单易用,小巧轻便
大神博客:http://blog.csdn.net/ithomer/article/details/7521668
以上是关于XML解析的主要内容,如果未能解决你的问题,请参考以下文章