xml文件名Person.xml
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="23">
<name>liming</name>
<age>30</age>
</person>
<person id="20">
<name>zhangxiaoxiao</name>
<age>25</age>
</person>
</persons>
xml解析类PersonService.java
package cn.itcast.service;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;
import cn.itcast.domain.Person;
public class PersonService {
public static List<Person> getPersons(InputStream input) throws Exception {
List<Person> lists = null;
Person person = null;
XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(input, "UTF-8");
int event = pullParser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_DOCUMENT:
lists = 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())) {
lists.add(person);
person = null;
}
break;
}
event = pullParser.next();
}
return lists;
}
}
测试
package cn.itcast.test;
import java.io.InputStream;
import java.util.List;
import cn.itcast.domain.Person;
import cn.itcast.service.PersonService;
import android.test.AndroidTestCase;
import android.util.Log;
public class TestPerson extends AndroidTestCase {
public void PersonTest() throws Exception {
//在src目录中找到Person.xml文件,并以流的形式输出
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream("Person.xml");
List<Person> lists = PersonService.getPersons(inputStream);
for (Person person : lists) {
Log.i("TestPerson", person.getId()+"--"+person.getName()+"--"+person.getAge());
}
}
}