Android学习笔记--XML解析

1.解析XML的两种方式:

解析XML 有两种方式:SAXDOM。它们各有利弊。

DOM是把 XML文档全部装载到内存中,然后当成一树进行处理。其好处是当成树处理 起来比较方便,但弊端是如果XML文件比较大时,会对内存消耗比较大;

SAX是逐行扫描 XML文档,逐行解析,而且可以在处理 XML文档过程中的任意时刻 中止处理过程,比如找到我们的目标节点,剩下的XML文档内容就可以不读了,直接结束。其 弊端是操作起来相对不方便,而且对XML文档进行处理,如果修改、新增、删除等操作比较不 方便。

SAX是事件驱动型 XML解析的一个标准接口。它的工作原理是读到文档的开始与结束、 标签元素的开始与结束、内容实体等地方时,触发相应的函数,我们就可以在相应的函数中进行 我们所要进行的处理。

SAX,全称SimpleAPI for XML,即是一种接口,也是指一个软件包

作为接口,SAX是事件驱动型XML解析的一个标准接口

2.SAX的原理:

对文档顺序扫描扫描到文档开始结束,元素开始结束等地方时通知事件处理函数

对大多数SAX实现都会产生以下类型的事件:

文档开始结束时触发文档处理事件

在文档内的每个XML元素接受解析前后触发元素事件

任何元数据通常都由单独的事件交互

在处理文档的DTDSchema时产生DTDSchema事件

产生错误事件用来通知主机应用程序解析错误

3SAX常用接口

ContentHandler接口

Java类包中特殊的SAX接口封装了一些对事件处理的方法 当遇到事件就会调用响应方法响应

比如:voidstartDocument() void endElements(String uri,String localName,StringqName)、 characters(char[]ch, int start, int length)


4SAX解析

解析文档过程:

创建事件处理程序

创建SAX解析器

将事件处理程序分配给解析器

对文档进行解析,将每个事件发送给处理程序

代码大致如下:

//创建一个SAXParserFactory

SAXParserFactoryfactory=SAXParserFactory.newInstance();//XML解析”工厂”

XMLReaderreader=factory.newSAXParser().getXMLReader();//通过上面得到的XML解析” 工厂”对象获得一个XML解析器对象

//XMLReader设置内容处理器

reader.setContentHandler(newMyContentHandler());

这里的MyContentHandler类为继承DefaultHandler(适配器模式所以不是实现 ContentHandler接口、如果是实现ContentHandler接口的话就得实现ContentHandler接口所 提供的所有方法)的类

//开始解析文件

reader.parse(newInputSource(newStringReader(resultStr)));//resultStr为要解析的字符串 //StringReader- - 以流的方式接受字符串

把自己要的解析工作代码写在响应的方法内(MyContentHandler


阅读更多
个人分类: andorid
想对作者说点什么? 我来说一句

Android XML和JSON解析代码

2015年06月30日 2.69MB 下载

android学习笔记1--SAX解析XML

2013年02月18日 15KB 下载

使用DOM解析XML和使用SAX解析XML

2013年03月24日 422KB 下载

android XML本地解析实例

2011年05月06日 32KB 下载

Android xml生成与解析

2017年05月18日 24.84MB 下载

Android SAX 解析XML

2012年05月07日 149KB 下载

android XML解析源码

2012年11月13日 55KB 下载

没有更多推荐了,返回首页

不良信息举报

Android学习笔记--XML解析

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭