`

android 使用 pull 解析xml文件 附源码

阅读更多
   pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字,
   读取到xml的声明返回数字0 START_DOCUMENT;
   读取到xml的结束返回数字1 END_DOCUMENT ;
   读取到xml的开始标签返回数字2 START_TAG
   读取到xml的结束标签返回数字3 END_TAG
   读取到xml的文本返回数字4 TEXT

   pull是开源的项目 源码下载地址http://www.xmlpull.org/
  service中的代码
package com.leequer.Service;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


import org.xmlpull.v1.XmlPullParser;

import android.util.Xml;

import com.leequer.Doem.Person;
/**
 * 使用pull解析xml
 * 2010-04-26
 * @author leequer
 *
 */
public class ReadXmlByPullService {
	
	public static List<Person> ReadXmlByPull (InputStream inputStream)throws Exception
	{
		List <Person> personList = null;
		/**
		 * android给我们提供了xml 用来得到xmlpull解析器
		 */
		XmlPullParser xmlpull = Xml.newPullParser();
		/**
		 * 将输入流传入 设定编码方式
		 * 
		 */
		xmlpull.setInput(inputStream, "utf-8");
		/**
		 * pull读到xml后 返回数字
		 *     读取到xml的声明返回数字0 START_DOCUMENT;
			   读取到xml的结束返回数字1 END_DOCUMENT ;
			   读取到xml的开始标签返回数字2 START_TAG
			   读取到xml的结束标签返回数字3 END_TAG
			   读取到xml的文本返回数字4 TEXT
		 */
		int eventCode = xmlpull.getEventType();
		/**
		 * 只要这个事件返回的不是1 我们就一直读取xml文件
		 */
		Person person = null;
		while(eventCode!=XmlPullParser.END_DOCUMENT)
		{
			
			switch (eventCode)
			{
				case XmlPullParser.START_DOCUMENT:
				{//开始文档 new数组
					personList =new  ArrayList<Person>();
					break;
				}
				case XmlPullParser.START_TAG:
				{
					if("person".equals(xmlpull.getName()))
					{
						person =  new Person();
						person.setId(xmlpull.getAttributeValue(0));
					}else if (person!=null)
					{
						if(("name".equals(xmlpull.getName())))
						{
							/**
							 * 如果当前元素的下一个元素是文本节点 就可以直接用nextText()这个方法来得到文本节点的内容
							 */
							person.setName(xmlpull.nextText());
						}else if ("age".equals(xmlpull.getName()))
						{
							/**
							 * 如果当前元素的下一个元素是文本节点 就可以直接用nextText()这个方法来得到文本节点的内容
							 */
							person.setAge(xmlpull.nextText());
						}
					}
					break;
				}
					
				case XmlPullParser.END_TAG:
				{ 
					if("person".equals(xmlpull.getName())&&person!=null)
					{
						personList.add(person);
						person = null;
					}
					break;
				}
			}
			
			eventCode = xmlpull.next();//没有结束xml文件就推到下个进行解析
			
			
		}
		
		return personList;
	}
}

5
3
分享到:
评论
3 楼 张红飞 2012-08-07  
这在看呢 
2 楼 kjsoloho 2012-04-12  
请问,为什么同样是getInputStream(有数据),但是却无法解析,
1 楼 zhaoyu_h 2011-05-30  

相关推荐

    android使用pull 解析xml文件源码

    pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...

    Pull解析xml源码导入即可用

    在标题和描述中提到的“Pull解析xml源码导入即可用”,意味着已经提供了一个预编写的XML Pull解析模板。这个模板可能包含了实现`XmlPullParser`接口的类,封装了XML解析的核心逻辑,如事件处理(如开始标签、结束...

    android pull解析xml源码

    "Android pull解析xml源码"这个主题聚焦于使用Android的XML Pull解析器来理解和操作XML文档。Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个...

    Android ReadXmlByPull 使用Pull解析Xml文件.zip项目安卓应用源码下载

    Android ReadXmlByPull 使用Pull解析Xml文件.zip项目安卓应用源码下载Android ReadXmlByPull 使用Pull解析Xml文件.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目...

    Android ReadXmlByPull 使用Pull解析Xml文件.rar

    在`Android ReadXmlByPull 使用Pull解析Xml文件`这个源码资源中,你可以看到完整的实现过程,包括如何创建和配置PullParser,如何读取XML文件,以及如何处理各种XML事件。通过学习和分析这段代码,你可以更好地理解...

    Android源码——ReadXmlByPull 使用Pull解析Xml文件.zip

    最后,关于提供的图片资源`1-120Z4013F10-L.png`和文本文件`Android ReadXmlByPull 使用Pull解析Xml文件`可能包含示例代码或图解,它们可以帮助更好地理解XML Pull解析的过程。在实际开发中,结合这些辅助材料,可以...

    Android ReadXmlByPull 使用Pull解析Xml文件-IT计算机-毕业设计.zip

    在给定的"Android ReadXmlByPull 使用Pull解析Xml文件"源码Demo中,开发者可能已经实现了上述步骤,并提供了清晰的示例代码供学习。通过阅读源码,你可以更深入地了解如何在实际项目中运用Pull解析器来处理XML数据,...

    Android ReadXmlByPull 使用Pull解析Xml文件.zip

    在给定的"ReadXmlByPull 使用Pull解析Xml文件"示例中,你可以找到一个具体的实现,通过阅读源码,你可以更深入地理解Pull解析的工作原理和使用方式。在实际项目中,可以根据需求调整解析逻辑,如对XML数据进行过滤、...

    安卓Android源码——ReadXmlByPull使用Pull解析Xml文件.zip

    本教程将深入探讨如何在Android系统中使用Pull解析器(Pull Parser)来读取和解析XML文件,以实现高效的数据处理。我们将通过分析"ReadXmlByPull"的源码来理解这一过程。 首先,让我们了解什么是Pull解析器。Pull...

    Android应用源码之28.使用DOM和pull解析XML.zip

    使用Pull解析XML的基本流程: 1. 创建Pull解析器:通过`XmlPullParserFactory`工厂类实例化`XmlPullParser`。 2. 设置输入源:根据XML文件来源(如文件、网络流等)设置解析器的输入源。 3. 开始解析:调用`next()`...

    pull解析器通用解析XML与生成XML

    在Android系统中,XML Pull解析器是一个轻量级、高效的解析XML文档的工具,它不需要DOM(Document Object Model)或者SAX(Simple API for XML)等完整的解析器支持。Pull解析器允许开发者通过事件驱动的方式顺序...

    Android XML解析—— Pull解析XML(待完善)

    在实际开发中,如Android的布局文件解析、配置文件读取或者从网络获取XML数据时,都可以使用Pull解析器进行处理。由于其高效和轻量级的特性,尤其在资源有限的环境中,Pull解析是首选的XML处理方式。 在博客链接...

    android解析xml源码和ppt.zip

    本资料包“android解析xml源码和ppt”提供了关于Android系统如何解析XML以及相关PPT的深入讲解。以下是关于这个主题的详细知识点: 1. XML解析器类型: - DOM(Document Object Model)解析器:它一次性加载整个...

    android的pull解析

    与DOM解析器相比,Pull解析器不创建整个XML文档的树结构,因此在处理大型XML文件时更为高效。 在Android中,XML Pull解析器主要由`org.xmlpull.v1.XmlPullParser`接口及其实现类提供。开发者可以通过`...

    Android应用源码之28.使用DOM和pull解析XML-IT计算机-毕业设计.zip

    总的来说,这份源码涵盖了Android开发中的核心技能之一——XML解析,无论是对DOM的深入理解还是对Pull解析的实践操作,都将对你的Android编程能力有显著提升。通过学习和研究,你不仅可以增强技术实力,还能为未来的...

    android下XML解析源码

    总结起来,DOM解析适合小规模、频繁修改的XML文档,而Pull解析适用于处理大型文件或网络流。在实际开发中,根据项目需求和性能考虑选择合适的解析方式。了解这两种解析方式的原理和使用,对于深入理解Android系统...

    android解析xml(Dom和pull源码)

    在Android开发中,解析XML是常见的任务,用于处理配置文件、数据交换等。本文将深入探讨两种主要的XML解析方式:DOM(文档对象模型)和PULL(轻量级拉取解析器)。这两种方法各有优缺点,适用于不同的场景。下面我们...

    安卓Android源码——比较通用的xml解析方法.rar

    在Android资源文件中,可以使用`XmlResourceParser`解析XML,它是基于Pull解析器的,专为处理Android资源设计。例如,解析布局文件、首选项设置等,可以通过`Resources.getXml(int resid)`获取`XmlResourceParser`...

Global site tag (gtag.js) - Google Analytics