Pull解析xml文件

解析的文件Person.xml
<?xml version="1.0" encoding="utf-8"?>
<persons>
    <person id="1" >
        <name>小罗</name>
        <age>21</age>
    </person>
 <person id="2">
     <name>android</name>
  <age>15</age>
 </person>
</persons>





Pull解析工具类
package com.example.xmlparse;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

public class PullParseUtils {
	public static List<Person> parseXmlByPull(InputStream inputStream)
			throws Exception {
		List<Person> persons = null;
		Person person = null;
		//    创建XMLPullParserFactory解析工厂  
		XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
		//    通过XmlPullParserFactory工厂类实例一个XmlPullParser解析类  
		XmlPullParser xmlPullParse = factory.newPullParser();
		//    根据指定的编码来解析xml文档  
		xmlPullParse.setInput(inputStream,"utf-8");
		//    得到当前的事件类型  
		int eventType = xmlPullParse.getEventType();
		//    只要没有解析到xml的文档结束,就一直解析  
		while (eventType != XmlPullParser.END_DOCUMENT) {
			switch (eventType) {
			//    解析到文档开始的时候  
			case XmlPullParser.START_DOCUMENT:
				persons = new ArrayList<Person>();
				break;
			//    解析到xml标签的时候  
			case XmlPullParser.START_TAG:
				if ("person".equals(xmlPullParse.getName())) {
					person = new Person();
					//    得到person元素的第一个属性,也就是ID  
					person.setId(xmlPullParse.getAttributeValue(0));
				} else if ("name".equals(xmlPullParse.getName())) {
					//通过nextText得打元素的值
					person.setName(xmlPullParse.nextText());
				} else if ("age".equals(xmlPullParse.getName())) {
					//    如果是name元素,则通过nextText()方法得到元素的值  
					person.setAge(Integer.parseInt(xmlPullParse.nextText()));
				}
				break;
			//    解析到xml标签结束的时候  
			case XmlPullParser.END_TAG:
				if ("person".equals(xmlPullParse.getName())) {
					persons.add(person);
					person = null;
				}
				break;
			}
			//    通过next()方法触发下一个事件  
			eventType = xmlPullParse.next();
		}
		return persons;
	}
}

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念