`
wangleyiang
  • 浏览: 220852 次
社区版块
存档分类
最新评论

Android Sax解析XML格式数据

阅读更多

    在Android开发中,经常会遇到对数据进行解析并获得有用信息的操作。下面使用Sax对XML格式数据进行解析,主要代码如下所示:

		try {

			// 用于测试的URL字符串
			String xmlString = "<NewDataSet><Table><Country>China</Country><City>Beijing</City><ID><Int>1</Int><Float>1.0</Float></ID></Table><Table><Country>China</Country><City>Hohhot</City><ID><Int>2</Int><Float>2.0</Float></ID></Table><Table><Country>China</Country><City>Dalian</City><ID><Int>3</Int><Float>3.0</Float></ID></Table></NewDataSet>";

			// 获得根元素
			RootElement newDataSet = new RootElement("NewDataSet");
			
			// 获得根元素的子元素Table
			Element table = newDataSet.getChild("Table");
			// 添加元素Table开始监听器
			table.setStartElementListener(new StartElementListener() {
				
				@Override
				public void start(Attributes attributes) {
					System.out.println("www:**********************************");
				}
			});
			// 添加元素Table结束监听器
			table.setEndElementListener(new EndElementListener() {

				@Override
				public void end() {
					System.out.println("www:**********************************");
				}
			});
			
			// 获得元素Table的子元素City
			Element city = table.getChild("City");
			// 添加元素City文本结束监听器
			city.setEndTextElementListener(
					new EndTextElementListener() {
						public void end(String body) {
							System.out.println("www:City: " + body);
						}
					});
			
			// 获得元素Table的子元素Country
			Element country = table.getChild("Country");
			country.setEndTextElementListener(new EndTextElementListener() {
				
				@Override
				public void end(String body) {
					System.out.println("www:Country: " + body);
				}
			});
			
			// 获得元素Table的子元素ID
			Element id = table.getChild("ID");
			
			// 获得元素ID的子元素Int
			Element idInt = id.getChild("Int");
			idInt.setEndTextElementListener(new EndTextElementListener() {
				
				@Override
				public void end(String body) {
					System.out.println("www:Int: " + body);
				}
			});
			
			// 获得元素ID的子元素Float
			Element idFloat = id.getChild("Float");
			idFloat.setEndTextElementListener(new EndTextElementListener() {
				
				@Override
				public void end(String body) {
					System.out.println("www:Float: " + body);
				}
			});

			// 获得SAXParserFactory实例
			SAXParserFactory factory = SAXParserFactory.newInstance();
			
			// 获得SAXParser实例
			SAXParser parser = factory.newSAXParser();

			// 获得XMLReader实例
			XMLReader xmlreader = parser.getXMLReader();
			xmlreader.setContentHandler(newDataSet.getContentHandler());
			
			InputSource is = new InputSource(new StringBufferInputStream(xmlString));

			// 解析
			xmlreader.parse(is);
			
		} catch (Exception e) {
			e.printStackTrace();
		}

     其中需要解析的XML格式数据如下:

<NewDataSet>
	<Table>
		<Country>China</Country>
		<City>Beijing</City>
		<ID>
			<Int>1</Int>
			<Float>1.0</Float>
		</ID>
	</Table>
	<Table>
		<Country>China</Country>
		<City>Hohhot</City>
		<ID>
			<Int>2</Int>
			<Float>2.0</Float>
		</ID>
	</Table>
	<Table>
		<Country>China</Country>
		<City>Dalian</City>
		<ID>
			<Int>3</Int>
			<Float>3.0</Float>
		</ID>
	</Table>
</NewDataSet>

     输出效果如下:

www:**********************************
www:Country: China
www:City Name: Beijing
www:Int: 1
www:Float: 1.0
www:**********************************
www:**********************************
www:Country: China
www:City Name: Hohhot
www:Int: 2
www:Float: 2.0
www:**********************************
www:**********************************
www:Country: China
www:City Name: Dalian
www:Int: 3
www:Float: 3.0
www:**********************************

     流程比较简单,就不详细说明了!希望对您有所帮助!:)

 

分享到:
评论

相关推荐

    android sax解析xml模板源码下载

    本示例"android sax解析xml模板源码"提供了一个使用SAX解析XML的实例,方便开发者直接导入到自己的项目中使用。 SAX解析XML的基本流程如下: 1. **创建解析器**:在Android中,我们需要使用`SAXParserFactory`来...

    android SAX解析String类型 XML 字符串

    "SAX解析String类型XML字符串"就是一种高效且节省内存的方式去解析XML数据,特别是当XML文件较大时,SAX解析器优于DOM解析器,因为它不需要一次性加载整个XML到内存中。下面我们将深入探讨这一主题。 首先,XML...

    android使用SAX解析xml

    - `xmlSAXPaserDemo`可能是一个包含示例代码的Android项目,用于演示如何实际使用SAX解析XML文件。 - 项目中可能包括网络请求模块、SAX解析器处理类以及展示解析结果的UI部分。 通过以上步骤,开发者可以在...

    Android SAX 解析XML

    下面详细介绍Android中使用SAX解析XML的关键步骤和相关知识点: 1. 引入库:在Android项目中,SAX解析器已经内置于`org.xml.sax`包中,无需额外导入库。 2. 创建事件处理器:你需要创建一个类来实现`...

    android 使用Sax解析XML 源码实例

    下面是一个SAX解析XML的示例(有点长,因为详细注解了SAX事件处理的所有方法),SAX API中主要有四种处理事件的接口,它们分别是ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler 。下面的例子可能...

    android sax解析xml

    本篇将详细讲解如何在Android环境中使用SAX解析XML。 1. **SAX解析的基本原理** SAX解析器读取XML文档时,遇到每个元素、属性、文本等都会触发相应的事件,开发者需要注册事件处理器来处理这些事件。这种方式适合...

    [Android]使用SAX解析XML文件

    总结,SAX解析XML在Android开发中是一个实用且高效的解决方案,尤其适用于处理大型XML文件。通过创建自定义的事件处理器,可以灵活地解析和处理XML数据,满足各种业务需求。不过,需要注意的是,由于SAX是基于事件的...

    Sax解析xml文件

    以下是一个使用SAX解析XML文件的基本步骤: 1. **创建解析器**: 首先,我们需要创建一个SAX解析器实例。在Java中,这通常通过`SAXParserFactory`类完成。设置解析器属性,然后调用`newSAXParser()`方法获取`...

    android sax 解析xml

    本文将详细介绍如何在Android中使用SAX解析XML。 首先,理解SAX解析的基本原理。SAX解析器在读取XML文档时,会触发一系列的事件,例如开始文档、结束文档、开始元素、结束元素等。开发者需要创建一个实现了`...

    android sax解析xml文件

    以下是一个简单的SAX解析XML文件的Android实例源码: ```java import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SaxExample extends ...

    Android之SAX解析XML

    SAX解析器为Android开发者提供了一种高效且内存友好的方式来解析XML数据,尤其适用于处理大量或复杂的数据。在`SaxTest`项目中,你可以找到一个具体的示例,演示如何将这些概念整合到实际的Android应用中。

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

    以下是使用SAX解析XML的基本步骤: - 创建`DefaultHandler`子类,重写关键方法如`startElement`、`endElement`和`characters`。 - 实例化`SAXParserFactory`,然后获取`SAXParser`。 - 使用`parse`方法解析XML文件...

    android SAX解析XML.docx

    在Android中使用SAX解析XML,主要涉及以下几个关键步骤: 1. **创建ContentHandler**:ContentHandler是SAX解析的核心,它定义了一系列的回调方法,用于处理XML文档的各种事件。比如`startDocument()`会在解析开始...

    android使用SAX解析XML

    下面我们将详细讨论如何在Android中使用SAX解析XML。 首先,我们需要了解SAX解析的基本原理。SAX解析器在读取XML文档时,会触发一系列的事件,如开始文档、开始元素、结束元素、字符数据等。开发者需要定义一个...

    Android XML解析——Sax解析XML

    ### Android中使用SAX解析XML 1. **引入库**:在Android项目中,SAX解析器已经内置在`org.xml.sax`包中,无需额外导入库。 2. **创建ContentHandler**:创建一个实现了`org.xml.sax.ContentHandler`接口的类,重写...

    android 使用sax解析XML

    本教程将详细讲解如何在Android中使用SAX解析XML。 首先,要使用SAX解析XML,我们需要理解其工作原理。SAX解析器会逐个读取XML文档的元素,每当遇到文档的开始、结束、文本等事件时,就会触发相应的回调方法。...

    android sax解析创建xml源码

    本篇文章将深入探讨Android环境下如何使用SAX解析XML,并介绍两种不同的解析方式。 ### SAX解析的基本原理 SAX解析器以流式方式读取XML文档,当遇到XML文档的各个元素时,会触发相应的事件回调,例如开始文档、...

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

    本篇文章将深入探讨三种在Android中解析XML的方法:DOM(文档对象模型)、Pull(拉取解析器)和SAX(简单API for XML),并且会特别强调如何识别文件编码。 首先,DOM解析是将整个XML文件加载到内存中形成一个树形...

    android下解析xml文件的demo

    在Android开发中,XML文件常用于存储数据、配置文件或者作为接口返回的数据格式。本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible ...

    Android网络之数据解析----SAX方式解析XML数据

    本篇文章将深入探讨如何使用SAX(Simple API for XML)方式解析XML数据,这是Android网络通信中处理XML数据的一种高效方法。 一、XML与JSON数据 XML(eXtensible Markup Language)是一种用于标记数据的语言,它...

Global site tag (gtag.js) - Google Analytics