public static List<Person> parseXml(InputStream inStream)
throws XmlPullParserException, IOException {
List<Person> persons = null;
Person person = null;
// 使用Android提供的Xml创建pull解析器
XmlPullParser xmlPullParser = Xml.newPullParser();
// 设置流文件
xmlPullParser.setInput(inStream, "UTF-8");
// 产生第一个事件
int eventType = xmlPullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {// 如果不是文档末尾
String tag = xmlPullParser.getName();//获取节点名
Log.i(TAG, tag+"====>");
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
persons = new ArrayList<Person>();
break;
case XmlPullParser.START_TAG:
if ("person".equals(tag)) {
person = new Person();
person.setPersonId(Integer.valueOf(xmlPullParser.getAttributeValue(0)));
} else if ("name".equals(tag)) {
//注意:这里获取文本元素是通过nextText()不是getText()
person.setPersonName(xmlPullParser.nextText());
} else if ("age".equals(tag)) {
person.setPersonAge(Integer.valueOf(xmlPullParser.nextText()));
}
break;
case XmlPullParser.END_TAG:
if("person".equals(tag))
persons.add(person);
break;
}
eventType = xmlPullParser.next();// 推进到下一个元素,并触发事件
}
return persons;
}
分享到:
相关推荐
在处理XML文件时,有多种解析方式,其中XMLPull解析是一种轻量级、高效的解析方法,适用于资源有限的环境,如移动设备。XMLPull解析器允许应用程序以拉取(pull)的方式逐个读取XML元素,而不是等待整个文档加载完毕...
XmlPull解析是Android和Java平台中处理XML文档的一种高效、轻量级的解析方式。它不依赖DOM(Document Object Model)或SAX(Simple API for XML),而是提供了一个基于事件的解析模型,允许开发者逐个读取XML文档的...
XMLPull解析XML是一种轻量级、高效的处理XML文档的方式,尤其在资源有限的移动设备如Android平台上尤为适用。它的全称是XML Pull Parser,是一种基于事件驱动的解析模型,允许开发者顺序读取XML文档,而无需构建整个...
在描述中提到的jar包,很可能是XMLPull解析库的实现,例如XMLPull_1_1_3_4c.jar,这个版本的XMLPull库提供了Java API,使得开发者可以直接在Java项目中集成并使用XMLPull解析XML。 标签“xmlpull”、“xml解析”和...
在Android开发中,XMLPull解析器被广泛使用,因为它不需要完整的DOM树(Document Object Model)来存储XML文档,而是通过事件驱动的方式解析XML内容。这种方式既节省内存,又提高了性能。 XMLPull的基本原理是,它...
XMLPullProject是一个基于XMLPull解析技术的项目,旨在帮助初学者理解并掌握XML数据的读取方式。XMLPull是一种轻量级的解析XML文档的方法,它允许开发者在没有额外依赖库的情况下高效地处理XML数据。这个项目通过源...
XMLPull解析器是一种轻量级、高效的解析XML的方式,它不需要完整的DOM树(文档对象模型)或者SAX(简单API for XML)事件驱动模型。本教程将深入探讨Android中的XMLPull解析,并通过具体的源代码分析来帮助理解其...
XStream是一个用于XML和Java对象之间进行序列化和反序列化的库,它依赖于XMLPull解析器来处理XML数据。 在“xmlpull_1_0_5”这个压缩包中,很可能包含了XMLPull解析库的1.0.5版本。这个版本可能修复了一些已知的...
本资源包含两个jar包:kxml2-2.3.0.jar和xmlpull-1.1.3.1.jar,它们是XMLPull解析器的重要组成部分。 1. **XMLPull简介** XMLPull是一种基于事件驱动的XML解析模型,全称为XML Pull Processing。与DOM(Document ...
在Android开发中,KXML2库实现了XMLPULL解析接口,使得开发者可以用KXML2的API进行Pull解析。这种结合使用的方式既保留了KXML2的易用性,又具备了Pull解析的高效性。 5. **使用步骤**: - 引入KXML2库:在Android...
XMLPULL解析是一种轻量级、高效的处理XML文档的方法,尤其适用于资源有限的移动设备或嵌入式系统。它提供了一种编程接口,允许开发者在Java环境中读取和解析XML文档,而无需依赖完整的DOM(Document Object Model)...
你可以看到如何实现XMLPull解析器的核心类,如`XMLPullParser`,它是处理XML文档的主要接口,提供了诸如next()、getName()、getText()等方法来获取XML文档的结构和内容。 "xmlpull_doc"目录则包含了XMLPull的文档...
XMLPull解析器是一种事件驱动的解析方式,它不会一次性加载整个XML文档到内存中,而是通过阅读XML文档的各个节点,触发相应的事件(如START_DOCUMENT、START_TAG、END_TAG等)。这样既节省了内存,又提高了解析速度...
以下是一个简单的示例代码,展示了如何使用XMLPull解析XML: ```java XMLPullParserFactory factory = XMLPullParserFactory.newInstance(); XMLPullParser parser = factory.newPullParser(); // 设置输入源,如...
XMLPull解析器的优点在于高效、内存占用少,但需要手动处理事件流,对开发者的要求较高。 2. XMLSAX解析: SAX(Simple API for XML)是一种基于事件驱动的解析模型。与XMLPull不同,SAX解析器不会一次性加载整个...
2. **创建XMLPull解析器**: 创建一个XMLPull解析器实例,通过输入流(InputStream)传递WML文档。这通常是通过网络连接获取WAP服务器上的WML页面实现的。 3. **设置解析事件监听**: 注册一个XML处理器...
#### XMLPull解析技术 ##### 工作原理 XMLPull是一种类似于SAX的解析模式,但更为简洁高效。它通过一个简单的迭代模型来解析XML文档,每次只读取文档的一部分。这种方法特别适合于移动设备等资源受限的环境。 #####...
总结,Android解析iOS的.plist城市文件并弹出对话框获取城市代码的过程包括:读取.plist文件并转换为XML,使用XMLPull解析器解析XML,构建城市数据结构,展示城市列表,监听用户选择并弹出对话框,以及处理用户在...