原文链接:http://blog.csdn.net/liuhe688/article/details/6415593
Android下解析xml,最好的方式是PULL,在xml.java中就只有一个 newPullParser(),说明是推荐使用的。在系统源码里面也都广泛使用。简单方便内存下速度快。是介于Sax和Dom的中间方法。
附件中是Demo工程,详细内容请参考原文链接。
一.基础知识
通过前面的学习我们已经知道了Android上使用SAX和DOM方式解析XML的方法,并且对两种做了简单的比较,通过比较我们知道对在往往内存比较稀缺的移动设备上运行的Android系统来说,SAX是一种比较合适的XML解析方式。
但是SAX方式的特点是需要解析完整个文档才会返回,如果在一个XML文档中我们只需要前面一部分数据,但是使用SAX方式还是会对整个文档进行解析,尽管XML文档中后面的大部分数据我们其实都不需要解析,因此这样实际上就浪费了处理资源。
就以USGS的地震数据为例,USGS网上的这个数据是定时更新的,但是一次更新往往只更新前面几条地震数据,大部分数据还是相同的,因此我们在解析时可以在上一次解析的结果之上根据<updated>元素标签中的值解析前面几条比之前updated值更新的地震数据即可。但是如果使用SAX方式的话,每次还是都会解析整个XML文档,而这却浪费了处理器资源和延长了处理的时间。
不过Android系统还提供了另一种XML解析方式可以使你更好的处理这种情况,就是Pull方式解析XML数据。
Pull解析器和SAX解析器虽有区别但也有相似性。他们的区别为:SAX解析器的工作方式是自动将事件推入注册的事件处理器进行处理,因此你不能控制事件的处理主动结束;而Pull解析器的工作方式为允许你的应用程序代码主动从解析器中获取事件,正因为是主动获取事件,因此可以在满足了需要的条件后不再获取事件,结束解析。这是他们主要的区别。
而他们的相似性在运行方式上,Pull解析器也提供了类似SAX的事件(开始文档START_DOCUMENT和结束文档END_DOCUMENT,开始元素START_TAG和结束元素END_TAG,遇到元素内容TEXT等),但需要调用next() 方法提取它们(主动提取事件)。
Android系统中和Pull方式相关的包为org.xmlpull.v1,在这个包中提供了Pull解析器的工厂类XmlPullParserFactory和Pull解析器XmlPullParser,XmlPullParserFactory实例调用newPullParser方法创建XmlPullParser解析器实例,接着XmlPullParser实例就可以调用getEventType()和next()等方法依次主动提取事件,并根据提取的事件类型进行相应的逻辑处理。
相关推荐
本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...
本篇文章将深入探讨Android中解析XML的三种主要方法,并通过一个名为"XMLParserDemo"的示例项目来详细阐述每种方法的实现步骤。 ### 1. DOM解析器 DOM(文档对象模型)解析器将整个XML文档加载到内存中,形成一个...
在Android开发中,获取系统内存信息以及保存和解析XML文件是常见的操作,这些功能对于优化应用性能、存储数据以及与其他应用或服务器交换信息至关重要。以下将详细介绍这两个知识点,并提供一个简单的示例。 首先,...
本文将深入探讨如何使用SAX、DOM和Pull解析器解析XML文件,以及如何生成XML文件。我们将同时展示Java和Kotlin两种语言的实现方法。 一、SAX解析XML文件 SAX(Simple API for XML)是一种事件驱动的解析器,它不会一...
本篇文章将详细探讨Android环境下如何进行JSON与XML的解析,并通过具体的例子和代码演示来加深理解。 一、JSON解析 1. JSON简介: JSON(JavaScript Object Notation)是一种简洁且易于阅读的数据格式,它基于...
XmlPullParser是Android系统提供的一种解析XML文件的API,它是一种基于事件驱动的解析方式,能够...通过学习和实践“XmlPullParser解析Xml文件解析demo”,开发者可以掌握这一核心技术,提升在Android开发中的能力。
2. **创建解析器**: 使用`SAXParserFactory`创建`SAXParser`实例,然后通过`parse()`方法解析XML输入源。输入源可以是文件、流或者URL。 3. **事件处理**: 在解析过程中,SAX解析器会调用我们在`DefaultHandler`...
3. **解析XML文件**:然后,使用`SAXParser`的`parse`方法读取XML文件。在解析过程中,解析器会根据XML内容调用我们在`DefaultHandler`子类中定义的方法。 4. **处理回调事件**:在回调方法中,我们可以根据接收到...
本篇将详细介绍Android中解析XML的三种主要方法:DOM(Document Object Model)、SAX(Simple API for XML)和PULL(Pull Parser)。我们将通过源码示例来阐述每种方法的基本原理和使用步骤。 1. DOM解析 DOM解析器...
使用SAX解析XML时,需要定义一个ContentHandler类,重写其startElement、endElement等方法,来处理XML元素的开始、结束等事件。 二、DOM解析器 DOM,即Document Object Model,是W3C组织推荐的一种XML和HTML的解析...
在这个"Android用DefaultHandler解析XML的Demo"中,我们将深入探讨如何在Android环境中利用`DefaultHandler`解析XML文件。 首先,理解XML解析的基本概念至关重要。XML解析分为DOM(Document Object Model)、SAX和...
Android中SAX解析XML的demo
这个"android XML文件解析和序列化 demo"旨在教你如何处理XML数据,包括解析XML文件以获取信息并将其存储为对象,以及将这些对象序列化回XML文件。下面我们将详细探讨这两个关键过程。 **XML解析** 1. **DOM解析器...
"Android Pull解析Demo"就是这样一个示例,它展示了如何利用Android系统内置的Pull解析器(PullParser)来解析XML文档,同时结合Java的反射机制,动态地获取类中的变量值。下面我们将深入探讨这两个关键知识点。 **...
XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据;...Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型
本篇将详细介绍如何在Eclipse中解析XML文件,以及相关的Android XML解析技术。 首先,Android SDK提供了两种主要的XML解析方法:DOM(Document Object Model)和SAX(Simple API for XML)。DOM解析器将整个XML文件...
理解如何在Android中解析XML是开发者必须掌握的关键技能之一。本篇将深入探讨Android中XML解析的两种主要方法:DOM(Document Object Model)解析和SAX(Simple API for XML)解析。 ### DOM解析 DOM解析器将整个...
在Android开发中,XML(eXtensible Markup Language)是一种常用的数据存储和交换格式,用于配置文件、数据...在`XmlDemo`项目中,你可以找到这些解析方式的具体实现,通过运行和比较,了解它们在性能和使用上的差异。
Android解析XML格式数据的三种方法 XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的...