android利用pull解析器解析xml

来源:互联网 发布:linux删除组和用户 编辑:程序博客网 时间:2024/05/19 04:06
 


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());}}}


 

 


 

 

原创粉丝点击