zoukankan      html  css  js  c++  java
  • (五十七)android解析XML总结(SAX、Pull、Dom三种方式)

    一、SAX、DOM、PULL的比较

    SAX、DOM、PULL各有自己的特点,具体操作XML的时候该如何选择呢?

    1.内存占用

    这是一个根本性问题。由于Android手机性能相对于现在的应用操作还是有限的,程序对内存的占用直接影响到了解析XML的速度。在这点上,SAX、Pull以它们比DOM占用更少的内存的解析方式,更适合于Android手机开发。

    2.编程方式

    SAX采用事件驱动,在相应事件触发的时候,会调用用户编写好的方法。也就是说,每解析一类XML,就要编写一个新的适合该类XML的处理类。这显然不是一个好的解决办法,尽管其在解析速度上是那么优秀。而这点,DOM因为是W3C的规范。所以被更多程序员所知道和使用。所以在开发过程中,没有太大困难。Pull虽然属于一个小众的,甚至是不为人知的解析器,但是通过上面对其介绍和示例,我们应该能看出它的简洁性。

    3.访问与修改

    由于采用的是流式解析,这就说明它们不能像DOM那样随机访问,XML的其中任意一个节点。并且,SAX并没有提供对文档中加节点的API,更没有删除,修改文档内容的方法。

    4.访问方式

    这是产生它们解析快慢的根本原因。如果把SAX和Pull比喻成一目十行,很快但是是走马观花的阅读方式的话,那么DOM就是逐字逐句的阅读,很慢,但是是过目不忘。这里还要需要注意的是,SAX,Pull解析的方式是同步的,即解析器读到哪里,就对哪里进行处理。而DOM是已经将文件解析好后,供用户提取XML中感兴趣的信息。

    总结:

    出于对内存占用的考虑,推荐使用SAX或者Pull来工作。可是根据它们工作的原理:如果只是需要XML最后的几个节点的相关信息,或者出现反复检索XML文件的情况,那么基本上三者在性能上就没有什么差异,反而在这时,SAX的处理类会使程序显得比其他的实现方式显得臃肿。所以,想做一个高性能的Android软件,还是要多分析,选择合适的工具,才能发挥它的作用。

    此部分主要参考网址:http://book.51cto.com/art/201211/367725.htm

    二、对android解析xml的这三种方式总结

    参考网址:http://www.cnblogs.com/JerryWang1991/archive/2012/02/24/2365507.html

  • 相关阅读:
    用代码控制CListCtrl的一行高亮显示或选择的问题
    机械版CG 实验3 变换
    机械版CG 实验5 Bezier曲线
    机械版CG 实验4 裁剪
    Avoiding UpdateData(ZZ)
    机械版CG 实验6 简单光照明模型实现
    机械版CG 实验2 直线生成算法的实现
    最近太忙了,没有时间打理Blog
    仿雅虎首页巨幅广告
    XML串行化,低层类
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4425637.html
Copyright © 2011-2022 走看看