安卓基于XMLPULSS解析XML的学习

这里介绍下在Android中极力推荐的xmlpull方式解析xml。xmlpull不仅仅可以使用在Android上,同样也适用于javase,但在javase环境下,你需要自己去获取xmlpull所依赖的类库。

下面是我自己写的一个例子。

1.XML源数据

<?xml version="1.0" encoding="UTF-8"?>
<persons>
	<person id="1">
		<name>张三</name>
		<address>湖北武汉</address>
	</person>
	<person id="2">
		<name>李四</name>
		<address>湖北宜昌</address>
	</person>
</persons>
2.解析输入流的方法

public List<Person> parseXml(InputStream inputStream)
			throws XmlPullParserException, IOException {

		List<Person> personList = Collections.EMPTY_LIST;

		Person person = null;

		XmlPullParserFactory xmlPullParserFactory = XmlPullParserFactory
				.newInstance();

		XmlPullParser xmlPullParser = xmlPullParserFactory.newPullParser();

		// 设置输入流
		xmlPullParser.setInput(inputStream, "utf-8");

		int eventCode = xmlPullParser.getEventType();

		while (eventCode != XmlPullParser.END_DOCUMENT) {
			String nodeName = xmlPullParser.getName();
			switch (eventCode) {
			case XmlPullParser.START_DOCUMENT:
				personList = new ArrayList<Person>();
				break;
			case XmlPullParser.START_TAG:
				if ("person".equals(nodeName)) {
					person = new Person();
					person.setId(Integer.parseInt(xmlPullParser
							.getAttributeValue(0)));
				}
				if ("name".equals(nodeName)) {
					person.setName(xmlPullParser.nextText());
				}
				if ("address".equals(nodeName)) {
					person.setAddress(xmlPullParser.nextText());
				}
				break;
			case XmlPullParser.END_TAG:
				if ("person".equals(nodeName)) {
					personList.add(person);
					person = null;
				}
				break;
			default:
				break;
			}
			eventCode = xmlPullParser.next();
		}

		return personList;
	}
3.测试方法

public static void main(String[] args) {
		InputStream inputStream = XmlPullTest.class
				.getResourceAsStream("persons.xml");
		XmlPullTest xmlPullTest = new XmlPullTest();
		try {
			List<Person> personList = xmlPullTest.parseXml(inputStream);
			System.out.println(personList);
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
好了,以上就是我学习安卓的基于XMLPULL解析XML的相关方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值