我们现在的大多开发项目中都难免和服务器端打交道,交互的过程无非是数据输入和输出,当我们将接口要求的数据按照格式传输到服务器端后,就会得到服务器端返回的数据,在行业内数据大多会使用被普遍接受和采用的
XML
格式(也有不少使用
JSON
)来组织数据进行返回,当我们获得
XML
时就可以解析获得自己需要的数据,或许是操作结果,或许是需要展示的数据列表,在
Android
中主要有三种的
XML
解析方式分别是
SAX
、
DOM
、
PULL
。
DOM
的基本原理:
DOM
解析
XML
文件时,会将
XML
文件的所有内容读取到内存中,然后允许您使用
DOM API
遍历
XML
树、检索所需的数据。使用
DOM
操作
XML
的代码看起来比较直观,并且,在某些方面比基于
SAX
的实现更加简单。但是,因为
DOM
需要将
XML
文件的所有内容读取到内存中,所以内存的消耗比较大,特别对于运行
Android
的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用
SAX
来解析
XML
文件,当然,如果
XML
文件的内容比较小采用
DOM
是可行的。
参考于http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3343.html
用
SharedPreferences读取的也是
XML文件,只是
SharedPreferences将操作
XML文件的具体细节隐藏了。本节及实例
38中将揭开挡在我们面前的面纱,对操作
XML文件的内幕一探究竟。
虽然可以使用很多第三方的
jar包来操作
XML,但
Android SDK本身已经提供了操作
XML的类库,这就是
SAX。使用
SAX处理
XML需要一个
Handler对象,一般会使用一个
org.xml.sax.helpers.DefaultHandler的子类作为
Handler对象。
SAX技术在处理
XML文件时并不一次性把
XML文件装入内存,而是一边读一边解析。因此,这就需要处理如下
5个分析点,也可称为分析事件。
-
开始分析
XML文件。该分析点表示
SAX引擎刚开始处理
XML文件,还没有读取
XML文件中的内容。该分析点对应于
DefaultHandler类中的
startDocument事件方法。可以在该方法中做一些初始化的工作。
-
开始处理每一个
XML元素,也就是遇到
<product>、
<item>这样的起始标记。
SAX引擎每次扫描到新的
XML元素的起始标记时会触发这个分析事件,对应的事件方法是
startElement。在该方法中可以获得当前元素的名称,元素属性的相关信息。
-
处理完一个
XML元素,也就是遇到
</product>、
</item>这样的结束标记。该分析点对应的事件方法是
endElement。在该事件中可以获得当前处理完的元素的全部信息。
-
处理完
XML文件。如果
SAX引擎将整个
XML文件的内容都扫描完了,就到了这个分析点,该分析点对应的事件方法是
endDocument。该事件方法可能不是必需的,如果最后有一些收尾工作,如释放一些资源,可以在该方法中完成。
-
读取字符分析点。这是最重要的分析点。如果没有这个分析点,前
4个步的处理相当于白跑一遍,虽然读取了
XML文件中的所有内容,但并未保存这些内容。而这个分析点所对应的
characters事件方法的主要作用就是保存
SAX引擎读取的
XML文件中的内容。更准确地说是保存
XML元素的文本,也就是
<product>abc</product>中的
abc。
-
了解了
SAX引擎读取
XML文件的原理,使用起来就容易多了,读者在实例
38中将会看到如何将
XML文件转换成一个
Java对象。
更多内容请参考http://dev.10086.cn/cmdn/bbs/thread-34932-1-1.html
那么废话少说,代码附上!
- 大小: 26.2 KB
- 大小: 24 KB
分享到:
相关推荐
本文将详细介绍XML的三种解析方法:DOM(Document Object Model)、SAX(Simple API for XML)和PULL(Pull Parser),并提供相关的程序示例。 **DOM解析** DOM解析器将整个XML文档加载到内存中,创建一个树形结构...
在Android开发中,XML(可扩展标记语言)作为一种...总结来说,XML解析在Android开发中扮演着重要角色,理解并掌握Pull、SAX和DOM三种解析方式,能够帮助开发者根据实际情况选择最适合的处理策略,提高代码效率和性能。
在Android开发中,XML(可扩展标记语言)是一种常见的数据交换格式,用于...理解这三种解析方式的原理和使用方法,对于优化Android应用的性能和内存管理至关重要。同时,正确识别XML文件的编码也是处理XML数据的前提。
Android系统提供了三种主要的XML解析方式:DOM(Document Object Model)、PULL(Pull Parser)和SAX(Simple API for XML)。每种方法都有其独特的特性和应用场景,下面将详细介绍这三种XML解析方式。 1. DOM解析...
在处理XML文档时,有三种主要的解析方式:SAX(Simple API for XML)、PULL(Pull Parser)和DOM(Document Object Model)。下面将详细解释这三种解析方法及其特点。 1. SAX(Simple API for XML) SAX是一种基于...
Java解析XML的三种方式 Ø Android中,解析Xml数据的三种方式: Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。 Ø 2、SAX(org.xml.sax) Ø SimpleAPI for XML,以事件的...
本文将深入探讨三种在Android中解析XML的主要方法:SAX(Simple API for XML)、Pull解析器和DOM(Document Object Model),并结合代码实现进行详细阐述。 **1. SAX解析** SAX(Simple API for XML)是一种事件...
Android提供了三种主要的XML解析方式:DOM(Document Object Model),SAX(Simple API for XML)和PULL(Pull Parser)。接下来我们将详细探讨这三种解析方式。 1. DOM解析: DOM解析器将整个XML文档加载到内存中...
XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件等领域。在Java中,有三种主要的...在`ParserXML`项目中,你可以找到这三种解析方式的具体实现示例,以便深入理解和实践。
下面将详细介绍这四种解析XML的方法。 1. SAX(Simple API for XML) SAX是一种事件驱动的解析器,它不会一次性加载整个XML文档到内存中,而是逐行读取,当遇到文档中的元素、属性等时,会触发相应的事件处理器方法...
下面将详细介绍这三种解析方式及其在Android中的应用。 1. SAX解析: SAX(Simple API for XML)是一种基于事件驱动的解析方式。它不会一次性加载整个XML文档到内存,而是逐行读取,当遇到特定的XML元素时(如开始...
本篇将详细讲解Android中三种主要的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull解析器,并通过案例来帮助理解它们的工作原理和应用场景。 ### 1. SAX解析器 SAX(Simple API for...
在Android中,有三种主要的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull Parser。下面将详细介绍这三种解析方式,并结合person类的实例进行讲解。 1. SAX解析: SAX是一种事件驱动...
本文将深入探讨这两种解析技术,并介绍如何同时使用它们来生成XML文件。 **SAX解析器**: SAX(Simple API for XML)是一种基于事件的解析器,它在读取XML文档时触发一系列事件,如开始元素、结束元素、字符数据等...
本篇文章将详细讲解如何在Android环境中利用DOM、Pull和SAX三种不同的方式来解析XML文件,以实现天气预报服务的数据处理。 首先,DOM(Document Object Model)解析器将整个XML文档加载到内存中,形成一个树形结构...
在处理XML文档时,有三种主要的解析方式:SAX(Simple API for XML)、PULL(Pull Parser)以及DOM(Document Object Model)。每种解析方式都有其特点和适用场景。 1. SAX解析: SAX(Simple API for XML)是一种...
在Android平台上,有三种主流的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和PULL(Pull Parser)。这三种方法各有特点,适用于不同的场景。 1. **SAX解析**: SAX解析器是一种事件...