您的位置:首页 > 其它

使用pull解析器读取xml文件

2012-12-08 01:22 387 查看
首先在src目录下建立xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="23">
<name>li</name>
<age>30</age>
</person>
<person id="20">
<name>zhang</name>
<age>25</age>
</person>
</persons>

建立实体类

package com.pull;

public class Person {
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Person [id=" + id + ", age=" + age + ", name=" + name + "]";
}
public void setName(String name) {
this.name = name;
}
private Integer age;
private String name;

}


解析xml业务类   PersonService
package com.pull;

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

import org.xmlpull.v1.XmlPullParser;

import android.util.Xml;

public class PersonService {

public static List<Person> getperson(InputStream xml)throws Exception{
List<Person> persons = null;
Person person = null;
//创建pull解析对象
XmlPullParser pullParser = Xml.newPullParser();

//为pull解析器设置解析参数
pullParser.setInput(xml, "UTF-8");

//得到节点类型
int event = pullParser.getEventType();
while(event !=XmlPullParser.END_DOCUMENT){
switch (event) {
case XmlPullParser.START_DOCUMENT:

persons = new ArrayList<Person>();
break;

case XmlPullParser.START_TAG:
if("person".equals(pullParser.getName())){
int id = new Integer(pullParser.getAttributeValue(0));
person = new Person();
person.setId(id);

}
if("name".equals(pullParser.getName())){
String name = pullParser.nextText();
person.setName(name);

}
if("age".equals(pullParser.getName())){
int age = new Integer(pullParser.nextText());
person.setAge(age);

}

break;

case XmlPullParser.END_TAG:
if("person".equals(pullParser.getName())){
persons.add(person);
person = null;
}

}

event = pullParser.next();
}
return persons;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: