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解析中提前结束解析的需求。

PS:Android View树的解析采用的是PUll解析方式。后续更新demo。


0 0
原创粉丝点击