Android学习笔记--XML解析

原创 2012年03月31日 11:11:56

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


相关文章推荐

android 学习笔记 Pull 解析XML 格式数据。

private void parseXMLWithPull(String xmlData) { try { XmlPullParserFactory factory = XmlPullPa...

Android学习笔记--解析XML之SAX

前言   既然要说XML解析,那么先来聊聊什么是XML。XML,可扩展标记语言 (Extensible Markup Language) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记...
  • n141617
  • n141617
  • 2013年06月24日 17:02
  • 308

Android学习笔记之AndroidManifest.xml文件解析 1

Android学习笔记之AndroidManifest.xml文件解析  一、关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文...

android SAX解析XML学习笔记

1.准备好要解析的data.xml文件到项目src目录下: 张三 19 广州 1811111111 ...

Android学习笔记之AndroidManifest.xml文件解析

Android学习笔记之AndroidManifest.xml文件解析 一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位...
  • n141617
  • n141617
  • 2011年06月22日 09:48
  • 311

android学习笔记16: SAX解析XML

thinking in java 85.5 Spring in Action 39.0 xml文件被Sax解析器载入,由于Sax解析是按照xml文件的顺序来解析,当读入...

Android学习笔记(八)XML文档的解析

一、废话   最近几天四川一直下雨,冷!今天到成都的时候,下午3点多的天和晚上天差不多,黑呼呼的... ...难道传说的2012来了?哈哈哈... ... 二、正文     在上一篇笔记中提到过...

android 学习笔记 SAX 解析XML数据

SAX解析也是一种特别常用的XML解析方式,虽然它的用法比Pull解析要复杂一些,但在语义方面会更加的清楚。通常情况下我们都会新建一个类继承自DefaultHandler,并重写父类的五个方法,如下所...

Android学习笔记13——XML文件解析

java sax对xml的解析
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android学习笔记--XML解析
举报原因:
原因补充:

(最多只允许输入30个字)