Android学习笔记13——XML文件解析
来源:互联网 发布:linux bc 缩写 编辑:程序博客网 时间:2024/04/30 23:46
一、SAX与DOM的比较
a) SAX是Simple API for XML的简写,它是一个XML解析的标准,也是一组API(软件包)。它的解析过程是逐行扫描XML文档,一种事件驱动模型。它的缺点是对XML的读取很方便,解析过程可以随时终止,但是插入、删除等操作很困难。
b) DOM是Document Object Model的简写,它把XML文档视为一棵树。解析文档之前,必须先把文档全部载入内存之中。因此效率不高,但可以方便的插入,删除等。
二、SAX的原理:
对文档进行顺序扫描,当扫描到文档的开始与结束、元素的开始与结束等地方时,通知事件处理函数,由事件处理函数作出相应动作,然后继续同样的扫描,直到文档结束。
大多数SAX实现都会产生以下类型的事件:
1、在文档的开始和结束时触发文档处理事件;
2、在文档内每一个XML元素接受解析的前后触发元素事件;
3、任何元数据通常都由单独的事件交付;
4、任何处理文档的DTD或schema时产生的DTD或schema事件;
5、产生错误事件用来通知主机应用程序解析错误。
三、SAX模型
三、SAX的解析过程
对于如下文档
<doc><para>Hello, world!</para></doc>
解析过程中会产生如下一系列事件:
start document
start element: doc
start element: para
characters: Hello, world!
end element: para
end element: doc
end document
1、创建事件处理器
2、创建SAX解析器
3、将事件处理程序分配给解析器
4、对文档进行解析,将每个事件分配给处理程序。
四、SAX的常用接口
a) org.xml.sax.ContentHandler 接口:封装了一些对事件处理的方法:
i. void startDocument()
ii. void endDocument()
iii. startElement(
String uri, // 命名空间的URI
String localName, // 标签的名字,不包含前缀
String qName, // 标签的名字,包含前缀
Attributes atts // 标签的所有属性
)
iv. endElement(
String uri,
String localName,
String qName)
v. void characters(
char[] ch, // 要解析的字符串
int start, // 开始位置
int length // 长度
)
六、对元素属性的操作:
在startElement方法中:
示例程序,对以下XML文件的解析
MyContentHandler.java
Activity
- Android学习笔记13——XML文件解析
- Android学习笔记(九)——XML文件解析
- Android学习笔记之—采用Pull解析XML文件
- 【Android学习笔记】XmlResourceParser解析xml文件
- Android学习笔记——XML解析
- Android学习笔记-Xml文件解析之PULL解析实战
- Symbian学习笔记——解析XML文件(上)
- Symbian学习笔记——解析XML文件(下)
- python学习笔记4——解析xml、文件操作
- 学习笔记—解析XML
- android基础笔记——解析xml文件
- Android学习笔记之AndroidManifest.xml文件解析
- Android学习笔记之AndroidManifest.xml文件解析
- Android学习笔记之AndroidManifest.xml文件解析
- Android学习笔记之AndroidManifest.xml文件解析
- Android学习笔记之AndroidManifest.xml文件解析
- Android学习笔记之AndroidManifest.xml文件解析
- Android学习笔记之AndroidManifest.xml文件解析
- WinCE基础知识(二):WinCE 5.0 的目录结构
- Android自定义View之一:初探实例
- java.net.Socket
- 博弈论总结
- Newton-Raphson 法求解非线性方程组
- Android学习笔记13——XML文件解析
- 让Cygwin Vim编辑器正确工作
- java基础语法--标识符
- Windows (wince、 windows mobile、windows phone)错误代码大全
- 分页工具栏PagingToolBar的使用
- oracle中如何通过exp导出条件过滤后的部分表数据
- Choosing Optimal Data Types
- YUM介绍
- codesmith 连接oracle远程数据库