android利用pull解析器解析xml

 


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


 

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值