A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯盼 中级黑马   /  2012-12-4 14:54  /  890 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冯盼 于 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>
待续.....

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马