`
mmdev
  • 浏览: 12917484 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android之使用SAX方式解析XML文件

 
阅读更多

1.XML基础知识:XML文件下的节点(Node):Element Node,Text Node

2.SAX(Simple API for XML),速度快并且最大限度的减少应用程序的内存占用,适合于Android的移动设备

3.在按内容顺序解析文档的过程中, SAX 会判断当前读到的字符是否合法 XML 语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调( callback )方法,这些方法 ( 事件 ) 定义在 ContentHandler 接口。下面是一些 ContentHandler 接口常用的方法: (1)startDocument()

当遇到文档的开头的时候,调用这个方法,可以在其中做一些预处理的工作。

(2)endDocument()

和上面的方法相对应,当文档结束的时候,调用这个方法,可以在其中做一些善后的工作。

(3)startElement(String namespaceURI, String localName, String qName, Attributes atts)

当读到一个开始标签的时候,会触发这个方法。namespaceURI 就是命名空间, localName 是不带命名空间前缀的标签名, qName 是带命名空间前缀的标签名。通过 atts 可以得到所有的属性名和相应的值。要注意的是 SAX 中一个重要的特点就是它的流式处理,当遇到一个标签的时候,它并不会纪录下以前所碰到的标签,也就是说,在 startElement() 方法中,所有你所知道的信息,就是标签的名字和属性,至于标签的嵌套结构,上层标签的名字,是否有子元属等等其它与结构相关的信息,都是不得而知的,都需要你的程序来完成。这使得 SAX 在编程处理上没有 DOM 来得那么方便。

(4)endElement(String uri, String localName, String name)

这个方法和上面的方法相对应,在遇到结束标签的时候,调用这个方法。

(5)characters(char[] ch, int start, int length)

这个方法用来处理在XML 文件中读到的内容,第一个参数用于存放文件的内容,后面两个参数是读到的字符串在这个数组中的起始位置和长度,使用 new String(ch,start,length) 就可以获取内容。

4.实例演示

(1)Person.xml

(2)Person.java

(3)SAX


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics