XML解析------XmlPullParser
工程结构图:
[img]
[/img]
运行效果图:
[img]
[/img]
一、xml:
<?xml version="1.0" encoding="utf-8"?>
<students>
<student id="1">
<name>tom</name>
<age>20</age>
</student>
<student id="2">
<name>kite</name>
<age>21</age>
</student>
<student id="3">
<name>rose</name>
<age>22</age>
</student>
</students>
二、Student类:
package com.amaker.pullparser;
public class Student {
private int id;
private int age;
private String name;
/**
* 无参构造方法
*/
public Student() {
super();
}
/**
* 带参构造方法
*/
public Student(int id, int age, String name) {
super();
this.id = id;
this.age = age;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [age=" + age + ", id=" + id + ", name=" + name + "]";
}
}
三、MainActivity类:
package com.amaker.pullparser;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Xml;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
List<Student> list = readXML();
for(Student s:list){
Log.i("test", s.toString());
}
}
List<Student> readXML(){
InputStream in = this.getClass().getClassLoader().getResourceAsStream("stu.xml");
XmlPullParser parser = Xml.newPullParser();
List<Student> studentList = new ArrayList<Student>();
Student currentStudent = null;
try {
parser.setInput(in, "utf-8");
int eventType = parser.getEventType();
while(eventType!=XmlPullParser.END_DOCUMENT){
switch (eventType) {
case XmlPullParser.START_TAG:
String tagName = parser.getName();
if(tagName!=null&&tagName.equals("student")){
currentStudent = new Student();
int id = Integer.parseInt(parser.getAttributeValue(null,"id"));
currentStudent.setId(id);
}
if(tagName!=null&&tagName.equals("name")){
String name;
try {
name = parser.nextText();
currentStudent.setName(name);
} catch (IOException e) {
e.printStackTrace();
}
}
if(tagName!=null&&tagName.equals("age")){
String age;
try {
age = parser.nextText();
currentStudent.setAge(Integer.parseInt(age));
} catch (IOException e) {
e.printStackTrace();
}
}
break;
case XmlPullParser.END_TAG:
if(parser.getName().equals("student")){
studentList.add(currentStudent);
}
break;
default:
break;
}
eventType = parser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return studentList;
}
}
- 大小: 19.8 KB
- 大小: 21 KB
分享到:
相关推荐
XmlPullParser是Android系统提供的一种解析XML文件的API,它是一种基于事件驱动的解析方式,能够高效、节省资源地处理XML文档。在这个“XmlPullParser解析Xml文件解析demo”中,我们将探讨如何利用XmlPullParser来...
XMLPullParser是Android开发中用于解析XML文档的一种高效且节省内存的方法。它提供了一种事件驱动的解析模型,允许开发者逐个处理XML文档的元素,而不是一次性加载整个文档到内存中,这对于处理大体积的XML数据尤其...
在Android中,XML解析主要有三种方式:DOM解析、SAX解析和Pull解析。DOM解析会将整个XML文件加载到内存,形成一个树形结构,适合小规模的XML文件;SAX解析是基于事件的,逐行读取,不会占用太多内存,但编程相对复杂...
`ReadXmlByPull`是一个常见的编程任务,它涉及到Android中的XML解析技术,特别是使用Pull解析器来处理XML数据。本文将深入探讨如何在Android中使用Pull解析器读取XML文件,并结合提供的源码Demo进行分析。 首先,让...
这个过程涉及网络请求、XML解析、数据模型的设计以及异常处理等多个方面的知识,是Android开发中常见的数据处理任务。理解并掌握这些技能对于任何希望构建涉及网络数据交换的移动应用开发者来说都是至关重要的。
本示例着重于Android中的两种主要XML解析方法:DOM(Document Object Model)解析和SAX(Simple API for XML)解析。这两种方法各有优缺点,适用于不同的场景。 首先,DOM解析是最常见的方法之一。它将整个XML文档...
除了DOM和SAX,还有基于Pull解析的XML解析,例如Android的`XMLPullParser`。虽然iOS原生框架中没有提供,但可以通过引入第三方库实现,如KissXML。此外,对于复杂XML处理,可以引入Java的DOM解析库如dom4j的iOS版本...
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
JSON解析可以借助Gson库,XML解析可以使用`XmlPullParser`或第三方库。在WebView中加载服务器返回的HTML内容,可以利用`loadData`或`loadDataWithBaseURL`方法。这些技术在Android开发中至关重要,能有效提升应用的...
在进行毕业设计时,通过这样的源码学习,你可以深入了解XML解析在Android应用中的实际应用,包括如何创建解析器、如何读取和处理XML节点,以及如何在实际项目中优化解析性能。同时,这也会帮助你更好地理解Android的...
在实际项目中,结合具体的XML结构和业务需求,合理运用XmlPullParser,可以实现灵活且高效的XML解析。在WeiboTest这个案例中,我们可以学习如何解析和处理复杂的XML数据结构,为Android应用开发提供数据支持。
VTD-XML是一个高效且灵活的XML解析库,它采用基于索引的访问方法来处理XML文档,而Volley则是Google推出的一个网络请求库,主要用于Android应用中的网络数据加载。本示例将探讨如何使用VTD-XML解析器与Volley协同...
在Java编程中,处理XML文件通常需要使用特定的解析库,本资源提供的"XML解析jar包"包含了多种流行的XML解析方法,如SAX、PULL、DOM、JDOM和DOM4J。 1. **SAX解析器**:SAX(Simple API for XML)是一种事件驱动的...
Android XML 多种解析生成 Android 平台中,XML 文件解析和生成是非常重要的一部分。XML 文件可以存储和交换结构化数据,广泛应用于 Android 应用程序中。本文将介绍 Android 中使用多种解析和生成 XML 文件的方法...
1. **XmlPullParser**: 这是XML解析的核心接口,它提供了多种方法来读取和解析XML文档。通过调用如`next()`、`getName()`、`getEventType()`等方法,开发者可以逐事件地遍历XML文档的元素、属性和文本内容。例如,`...
Android支持多种XML解析技术,包括DOM、SAX和Pull解析。每种方法都有其特定的优势和应用场景。 #### DOM解析XML DOM(Document Object Model)解析是一种将整个XML文档加载到内存中,并构建出一棵树状结构(称为DOM...
本篇文章将深入探讨安卓系统中的XML解析,包括基本概念、解析方式以及如何在实际项目中应用。 一、XML基本概念 XML是一种自描述的标记语言,它通过标签来描述数据,结构清晰,易于人类阅读和机器处理。在Android中...
Android系统提供了三种主要的XML解析方式:DOM(Document Object Model)、PULL(Pull Parser)和SAX(Simple API for XML)。每种方法都有其独特的特性和应用场景,下面将详细介绍这三种XML解析方式。 1. DOM解析...
在`XMLRequest`中,重写`parseNetworkResponse()`方法,这里我们将使用`XmlPullParserFactory`和`XmlPullParser`进行XML解析。 以下是一个简单的`XMLRequest`示例: ```java public class XMLRequest extends ...
Android系统提供了一种轻量级的XML解析方式——PULL解析器(Pull Parser),它适用于处理大型XML文档,因为它不需要像DOM解析器那样一次性加载整个XML文档到内存中。PULL解析器通过事件驱动的方式,按需解析XML文档...