`

解析xml的三种方式DOM/SAX/PULL

阅读更多

 

我们现在的大多开发项目中都难免和服务器端打交道,交互的过程无非是数据输入和输出,当我们将接口要求的数据按照格式传输到服务器端后,就会得到服务器端返回的数据,在行业内数据大多会使用被普遍接受和采用的 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
1
4
分享到:
评论
2 楼 giianhui 2011-07-05  
下载附件就可以看到了
1 楼 doylecnn 2011-07-05  
PULL 呢?

相关推荐

    XML解析DOM/SAX/PULL

    本文将详细介绍XML的三种解析方法:DOM(Document Object Model)、SAX(Simple API for XML)和PULL(Pull Parser),并提供相关的程序示例。 **DOM解析** DOM解析器将整个XML文档加载到内存中,创建一个树形结构...

    Android中XML的解析Pull//SAX/DOM

    在Android开发中,XML(可扩展标记语言)作为一种...总结来说,XML解析在Android开发中扮演着重要角色,理解并掌握Pull、SAX和DOM三种解析方式,能够帮助开发者根据实际情况选择最适合的处理策略,提高代码效率和性能。

    android 三种方式解析XML(DOM,Pull,Sax) 带文件编码识别

    在Android开发中,XML(可扩展标记语言)是一种常见的数据交换格式,用于...理解这三种解析方式的原理和使用方法,对于优化Android应用的性能和内存管理至关重要。同时,正确识别XML文件的编码也是处理XML数据的前提。

    Android XML解析(DOM、PULL、SAX三种方式)

    Android系统提供了三种主要的XML解析方式:DOM(Document Object Model)、PULL(Pull Parser)和SAX(Simple API for XML)。每种方法都有其独特的特性和应用场景,下面将详细介绍这三种XML解析方式。 1. DOM解析...

    SAX,PULL,DOM解析XML

    在处理XML文档时,有三种主要的解析方式:SAX(Simple API for XML)、PULL(Pull Parser)和DOM(Document Object Model)。下面将详细解释这三种解析方法及其特点。 1. SAX(Simple API for XML) SAX是一种基于...

    dom.sax.pull解析

    Java解析XML的三种方式 Ø Android中,解析Xml数据的三种方式: Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。 Ø 2、SAX(org.xml.sax) Ø SimpleAPI for XML,以事件的...

    android解析XML总结(SAX、Pull、Dom三种方式)

    本文将深入探讨三种在Android中解析XML的主要方法:SAX(Simple API for XML)、Pull解析器和DOM(Document Object Model),并结合代码实现进行详细阐述。 **1. SAX解析** SAX(Simple API for XML)是一种事件...

    android中xml的三种解析方式(DOM,SAX,PULL)

    Android提供了三种主要的XML解析方式:DOM(Document Object Model),SAX(Simple API for XML)和PULL(Pull Parser)。接下来我们将详细探讨这三种解析方式。 1. DOM解析: DOM解析器将整个XML文档加载到内存中...

    使用sax,pull,dom4j解析XML

    XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件等领域。在Java中,有三种主要的...在`ParserXML`项目中,你可以找到这三种解析方式的具体实现示例,以便深入理解和实践。

    java xml 4 种 解析xml 方法 sax jdom dom stAX

    下面将详细介绍这四种解析XML的方法。 1. SAX(Simple API for XML) SAX是一种事件驱动的解析器,它不会一次性加载整个XML文档到内存中,而是逐行读取,当遇到文档中的元素、属性等时,会触发相应的事件处理器方法...

    android xml 的解析 sax dom pull 解析

    下面将详细介绍这三种解析方式及其在Android中的应用。 1. SAX解析: SAX(Simple API for XML)是一种基于事件驱动的解析方式。它不会一次性加载整个XML文档到内存,而是逐行读取,当遇到特定的XML元素时(如开始...

    Android SAX、DOM、Pull解析xml文件案例讲解

    本篇将详细讲解Android中三种主要的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull解析器,并通过案例来帮助理解它们的工作原理和应用场景。 ### 1. SAX解析器 SAX(Simple API for...

    Android XML解析 SAX DOM Pull

    在Android中,有三种主要的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull Parser。下面将详细介绍这三种解析方式,并结合person类的实例进行讲解。 1. SAX解析: SAX是一种事件驱动...

    通过SAX和PULL来解析XML,同时生成xml

    本文将深入探讨这两种解析技术,并介绍如何同时使用它们来生成XML文件。 **SAX解析器**: SAX(Simple API for XML)是一种基于事件的解析器,它在读取XML文档时触发一系列事件,如开始元素、结束元素、字符数据等...

    结合天气预报服务写的xml的DOM\pull\sax三种解析

    本篇文章将详细讲解如何在Android环境中利用DOM、Pull和SAX三种不同的方式来解析XML文件,以实现天气预报服务的数据处理。 首先,DOM(Document Object Model)解析器将整个XML文档加载到内存中,形成一个树形结构...

    SAX或PULL或DOM解析XML

    在处理XML文档时,有三种主要的解析方式:SAX(Simple API for XML)、PULL(Pull Parser)以及DOM(Document Object Model)。每种解析方式都有其特点和适用场景。 1. SAX解析: SAX(Simple API for XML)是一种...

    Android ,SAX,DOM,PULL解析XML

    在Android平台上,有三种主流的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和PULL(Pull Parser)。这三种方法各有特点,适用于不同的场景。 1. **SAX解析**: SAX解析器是一种事件...

Global site tag (gtag.js) - Google Analytics