一、主要程序(解析程序
public class Parse {
private List<Person> list;
private Person person;
public Parse(InputStream inputStream) throws XmlPullParserException, IOException {
XmlPullParser parser=Xml.newPullParser();
parser.setInput(inputStream, "utf-8");
int event=parser.getEventType();
while (event!=XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_DOCUMENT:
list=new ArrayList<Person>();
break;
case XmlPullParser.START_TAG:
if("person".equals(parser.getName())){
person=new Person();
person.setId(parser.getAttributeValue(0)+"");
}else if("name".equals(parser.getName())){
person.setName(parser.nextText());
}else if ("age".equals(parser.getName())) {
person.setAge(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if("person".equals(parser.getName())){
list.add(person);
person=null;
}
break;
default:
break;
}
event=parser.next();
}
}
public List<Person> getList(){
return list;
}
}
二、xml文件
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id = "23">
<name>zhangsan</name>
<age>25</age>
</person>
<person id = "24">
<name>lisi</name>
<age>26</age>
</person>
</persons>
三、调用解析并输出打印
private void jiexi() throws IOException, XmlPullParserException{
isInputStream=this.getAssets().open("data.xml");
Parse parseSecond=new Parse(isInputStream);
List<Person> list=parseSecond.getList();
for (int i = 0; i < list.size(); i++) {
Person person=list.get(i);
Log.i("info", person.getName()+","+person.getId()+","+person.getAge());
}
}
四、定义对象
public class Person {
private String id;
private String name;
private String age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
五、程序图