`

android pull解析器解析xml

阅读更多
xml文件如下:
<?xml version="1.0" encoding="UTF-8">
<persons>
	<person id="1">
		<name>aa</name>
		<age>30</age>
	</person>
	<person id="2">
		<name>bb</name>
		<age>22</age>
	</person>
</persons>


新建一个person类:
public class Person{
  private int id;
  private String name;
  private String age;
  ...getter,setter
}

读取xml文件中的内容:
/**
	 * 读取xml文件中的内容
	 * @param xml
	 * @return
	 * @throws Exception
	 */
	public static List<Person> getPersons(InputStream xml) throws Exception {
		// 得到pull解析器
		// XmlPullParser
		// pull=XmlPullParserFactory.newInstance().newPullParser();
		List<Person> persons = null;
		Person person=null;
		XmlPullParser pull = Xml.newPullParser();
		pull.setInput(xml, "UTF-8");
		int event = pull.getEventType();
		while (event!=XmlPullParser.END_DOCUMENT) {
			switch (event) {
			case XmlPullParser.START_DOCUMENT:
				persons = new ArrayList<Person>();
				break;
			case XmlPullParser.START_TAG:
				if("person".equals(pull.getName())){
					int id=new Integer(pull.getAttributeValue(0));
					person=new Person();
					person.setId(id);
				}
				if("name".equals(pull.getName())){
					String name=pull.nextText();
					person.setName(name);
				}
				if("age".equals(pull.getName())){
					int age=new Integer(pull.nextText());
					person.setAge(age);
				}
				break;
			case XmlPullParser.END_TAG:
				if("person".equals(pull.getName())){
					persons.add(person);
					person=null;
				}
			}
			event=pull.next();
		}
		return persons;
	}


保存数据到xml文件中:
/**
	 * 保存数据到xml文件
	 * @param persons
	 * @param out
	 * @throws Exception
	 */
	public void save(List<Person> persons,OutputStream out) throws Exception{
		XmlSerializer s=Xml.newSerializer();
		s.setOutput(out,"UTF-8");
		s.startDocument("UTF-8", true);
		s.startTag(null, "persons");
		for(Person p:persons){
			s.startTag(null, "person");
			s.attribute(null, "id", p.getId().toString());
			s.startTag(null, "name");
			s.text(p.getName().toString());
			s.endTag(null, "name");
			s.startTag(null, "age");
			s.text(p.getAge().toString());
			s.endTag(null, "age");
			s.endTag(null, "person");
		}
		s.endTag(null, "persons");
		s.endDocument();
		out.flush();
		out.close();
	}
}


分享到:
评论

相关推荐

    android xml pull解析示例

    XML Pull解析器是基于事件驱动的解析方式,它会触发一系列事件(如开始标签、结束标签、文本数据等),开发者可以注册监听这些事件,从而实现对XML文档的解析。这种方式既节省内存又提高效率,特别适合处理大型XML...

    使用Android自带的XML解析器PULL解析器简单的解析xml

    下面是一个简单的使用PULL解析器解析XML并显示内容在`TextView`上的步骤: 1. 引入必要的库:在Android项目中,`XmlPullParser`是内置的,无需额外导入库。 2. 创建`XmlPullParser`实例:通常,我们可以使用`...

    android之Pull解析XML文件

    Pull解析器是Android提供的一个API,它允许应用程序通过事件驱动的方式解析XML文档。与SAX解析器类似,Pull解析器不需要预先加载整个XML文档到内存,而是逐个处理XML元素,从而减少了内存消耗,特别适合于处理大型...

    Android中,使用SAX和PULL解析天气预报XML

    该文章详细介绍了在Android环境下如何使用SAX和PULL解析XML,包括代码示例和步骤说明,对于初学者来说非常有帮助。 最后,压缩包中的"Weather"文件很可能是示例的天气预报XML数据。通过实际解析这个文件,你可以更...

    android pull解析xml源码

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

    android中使用PULL解析XML

    本文将深入探讨如何在Android中使用PULL解析器(Pull Parser)来解析XML文档,这是一种轻量级且高效的解析方式。 **PULL解析器概述** PULL解析器(Pull Parsing)是一种事件驱动的解析模型,它不需要完整的XML文档...

    android下的pull解析器解析和生成xml文件

    以下是一个简单的示例,展示如何使用Pull解析器解析XML文件: ```java XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput...

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

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

    采用pull解析器解析和生成xml内容

    在Android开发中,由于其轻量级和高效的特点,Pull解析器成为了处理XML数据的一种常见方法。本篇文章将深入探讨如何在Android环境中使用内置的Pull解析器来解析和生成XML内容。 首先,我们需要理解什么是Pull解析器...

    Android PULL解析XML

    PULL解析器在读取XML时,会触发一系列的事件,开发者可以注册监听这些事件并进行相应的处理。 要实现PULL解析XML,首先需要创建一个`XmlPullParserFactory`工厂对象,然后用它创建`XmlPullParser`解析器实例。接着...

    使用pull解析器解析和生成xml文件

    本文将深入探讨如何使用Pull解析器来解析和生成XML文件,特别关注Android环境下的应用。 ### Pull解析器概述 Pull解析器是一种事件驱动型的XML解析器,它允许开发者通过一系列的事件来读取和解析XML文档。与SAX...

    android 安卓xml pull解析

    二、XML Pull解析器 在Android中,我们使用`org.xmlpull.v1.XmlPullParser`接口来实现XML Pull解析。这个接口提供了诸如`next()`、`getName()`、`getText()`等方法,帮助我们按需读取XML文档的各个部分。Android还...

    Android 封装pull解析xml

    Pull解析器(XMLPullParser)是Android SDK提供的一种轻量级、高效的XML解析方式,它不需要创建整个XML文档的树结构,而是通过事件触发的方式解析XML,从而节省内存资源。以下是一些关于封装Pull解析XML的关键知识点...

    在android中使用pull解析xml文件

    本文将深入探讨如何在Android中使用Pull解析器解析XML文件。 一、XML Pull解析器简介 XML Pull解析器(XML Pull API)是一种基于事件驱动的解析模型,它不需预先加载整个XML文档,而是逐行读取,当遇到特定的XML...

    android Pull XML文件解析 存取 代码程序

    本篇文章将深入探讨如何在Android中使用Pull解析器进行XML文件的解析和存取。 一、XML解析器简介 在Android中,有两种主要的XML解析方式:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动...

    xml PULL解析的一个小例子

    在Android开发中,由于其轻量级和高效的特点,XML Pull解析器成为处理XML文档的一种常见方法。本DEMO主要展示了如何在Android项目中使用XML Pull解析技术。 XML Pull解析器的工作方式是基于事件驱动的,它会读取XML...

    Android Pull解析

    在Android开发中,"Pull解析"通常指的是使用Pull解析器(Pull Parser)进行XML或JSON数据的解析。这是一种基于事件的解析方式,与SAX解析器相似,但更符合Android平台的特点,允许开发者以更低的内存消耗和更高的...

    Pull解析xml源码导入即可用

    首先,理解XML Pull解析器的工作原理是至关重要的。在Android中,XML Pull解析是一种轻量级处理XML文档的方式,它允许应用移动通过XML文档的结构,而无需预先加载整个文档到内存。这使得解析大型XML文件成为可能,...

    Android解析xml(3)---Pull解析

    本篇文章将重点讨论如何在Android中使用Pull解析器(PullParser)来解析XML文件。Pull解析器是一种事件驱动的解析方式,它允许应用程序在解析过程中按需获取XML数据,而不是一次性加载整个文档到内存,这使得处理...

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

    综上所述,Android中的Pull解析器提供了一种高效、低内存消耗的解析XML的方式。通过创建解析器、设置输入源、处理事件以及异常处理,开发者可以轻松地读取和解析XML文件。在实际应用中,可以根据具体需求调整解析...

Global site tag (gtag.js) - Google Analytics