Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 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 documentStart element:docEnd element:docStart element:paraCharacters:Hello World!End element:paraEnd documentContentHandler接口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.linuxidc.com/用户名与密码都是www.linuxidc.com具体下载目录在 /2012年资料/6月/28日/Android中XML解析