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解析Xml文件解析demo,具体用法,请参考我的博客,老早上传的了,希望对大家有帮助,已经设置了0积分。请大家免费下载。
XMlPullParser解析网上资源xml
Android解析xml(3)---Pull解析
怎么用XmlPullParser解析xml,以及怎么把数据转换成xml。
xmlPullParser解析器jar包,从android里提取的.
进来很多人在找天气的API接口,所以乘此机会写了个在android平台用 XmlPullParser解析从车联网(即百度天气API)获取的天气XML文件!这是一个工具包,开发者可以直接拿过去调用,其中为了省时间,很多代码没优化,如...
见博客:http://blog.csdn.net/baidu_nod/article/details/38248633
StringBuilder、XmlSerializer、XmlPullParser生成xml并解析xml文件
解析Xml有三种方式可选,sax ,dom ,pull ,,各有各的优点,但在android上是不推荐使用DOM来解析的 一般都用SAX和PULL 这两个性能相近, SAX的解析方式大家可以去看MARS的教程 讲的也比较好喔 PULL的话我个人觉得处理...
XmlSerializer XmlPullParser简单小例子
主要介绍了Android XmlPullParser 方式解析 Xml 文档的相关资料,需要的朋友可以参考下
在学习Android的Framework层源码时,Android大量的使用XmlPullParser来解析xml文件的源码。因此,这里也顺道介绍一下XmlPullParser的使用。 XML XML(eXtensible Markup Language)中文名为可扩展标记语言。标记指...
解析XML文件:在Android平台上可以使用SAX、DOM和Android附带的pull解析器解析XML文件;pull解析器提供了各种事件,使用parser.next()方法...读取XMLXmlPullParser pullParser = Xml.newPullParser();pullParser.setInpu
2.1 XML解析 2.2 实战演练——习题详情显示 XML解析 XML解析 XML parsing 将XML文件中所有内容以DOM树形式存放在内存中,支持删除、修改等功能。缺点是消耗内存较大。 三种解析方式 DOM解析 逐行扫描XML文件,读取...
首先是创建,我们用XmlSerializer这个类来创建一个xml文件,其次是解析xml文件,常用的有dom,sax,XmlPullParser等方法,由于sax代码有点复杂,本节只讲解一下dom与XmlPullParser解析,sax我将会在下一节单独讲解,...
xmlpull-1.1.3.1 + kxml2-2.3.0 ..."res/book.xml")), "UTF-8"); 4.第一个解析事件 int eventType = paser.getEventType(); 5.使用循环判断是否继续解析 while (eventType != XmlPullParser.END_DOCUMENT) {}
官方推荐XmlPullParser,其在android中对XML的解析是高效且可维护的。android已经拥有该接口的两个实现: KXmlParser,通过XmlPullParserFactory.newPullParser()创建。 ExpatPullParser,通过Xml.newPullParser()...
XmlPullParser parser Xml newPullParser ; try { parser setInput stream "UTF 8" ; int event parser getEventType ; while event XmlPullParser END DOCUMENT { switch event { ...