黑马程序员技术交流社区
标题:
android 解析XML数据三种方法总结
[打印本页]
作者:
冯盼
时间:
2012-12-4 14:54
标题:
android 解析XML数据三种方法总结
本帖最后由 冯盼 于 2012-12-4 23:21 编辑
1、关于SAX
SAX是一个解析速度快并且占用内存少的XML解析器。SAX解析XML文件采用的是事件驱动,也就是它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到字符是否符合XML语法中的某部分,如果符合则触发事件。所谓的事件其实就是一些回调函数,这些方法定义在ContentHandler接口中。(该种解析会将换行以及tab字符也读入)
startDocument-当遇到文档开头的时候,调用这个方法,可以在该方法中进行预处理工作。
endDocument-当文档结束的时候,调用这个方法,可以在该方法中进行善后工作。
startElement-当遇到一个开始标签的时候,会触发该方法。
endElement-当遇到结束标签的时候,会调用该方法。
characters-该方法用来处理在XML文件中读到的内容。
2、关于DOM
Dom解析是将xml文件全部载入,组装成一棵dom树,然后通过节点以及节点之间的关系来解析xml文件。对于特别大的文档,解析和加载整个文档可能很慢且很耗资源。
3、关于pull
Pull解析和Sax解析很相似,都是轻量级的解析,在Android的内核中已经嵌入了Pull,所以我们不需要再添加第三方jar包来支持Pull。Pull解析和Sax解析不一样的地方有:
(1)Pull读取xml文件后出发相应的事件调用方法返回的是数字。
(2)Pull可以在程序中控制想解析到哪里就在哪里停止。
(一行一行读取,会将tab也读入进行比较)
XML文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!--正文开始-->
<persons>
<person id="1">
<name>李明</name>
<age>30</age>
</person>
<person id="2">
<name>李向梅</name>
<age>33</age>
</person>
<person id="3">
<name>张三</name>
<age>88</age>
</person>
</persons>
待续.....
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2