Android中XML解析
Android中XML解析
XML全称叫“可扩展标记语言”,和HTML类似,和HTML所不同的是XML的标签是自定义的。
XML的两种解析方式比较
通常有两种常见的方式来解析XML:DOM解析和SAX解析。
DOM解析是把XML看成一棵树,有根节点,子节点。DOM解析XML文档的时候,首先要把XML文档全部装载的内存里面,然后解析成一棵树,然后在这棵树上操作,可以取节点内容以及添加和删除节点。
DOM的优点:操作简单方便
DOM的缺点:如果XML文档比较大,性能就存在问题了
SAX(Simple API for XML)解析,SAX是逐行解析,而且可以随时停止解析(比如说我读XML读到一半就找到了想要的信息,那么就可以停止解析了),
DOM的优点:逐行解析,随时可以停止。因此提高了性能,适合手机开发
DOM的缺点:操作比DOM复杂,不可以添加和删除节点
SAX的工作原理
SAX的工作原理简单的说就是对文档进行顺序扫描,当扫描的文档(document)开始和结束,元素(element)开始和结束等地方通知事件处理函数,由事件处理函数做相应的操作,然后继续扫描,直到文档结束。
大多数SAX实现都会产生以下类型的事件:
- 读到整个文档(document)开始和结束时触发事件
- 读到每一个XML元素(element)开始和结束时触发事件
-
读到每一个XML元素里面的内容时触发事件
- 处理文档的DTD或Schema时触发DTD或Schema事件
- 解析错误时触发错误事件
SAX解析文档过程
对于如下文档
<doc>
<para>HelloWorld!</para>
</doc>
在解析文档的过程中会产生一下事件
Start document
Start element:doc
End element:doc
Start element:para
Characters:Hello World!
End element:para
End document
ContentHandler接口
ContentHandler提供了解析XML文档是所触发的一系列事件方法
l void startDocument()
l void endDocument()
l void startElement(String uri, String localName, string qName,Attributes atts)
l void endElement(String uri, String localName, string qName)
l void characters(char[] ch, int start, int length)
下面通过代码理解
Android中XML解析。一个很简单的例子,用SAX的方法解析
免费下载地址在 http://linux.bkjia.com/
用户名与密码都是www.bkjia.com
具体下载目录在 /2012年资料/6月/28日/Android中XML解析
评论暂时关闭