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

posted @ 2017-05-11 22:10  EugeniaGao  阅读(148)  评论(0编辑  收藏  举报