package com.example.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.util.Xml;
public class PULLForXML {
public static List<Person> parseFromPull(InputStream is) throws XmlPullParserException,IOException{
List<Person> mlist = null;
Person person = null;
XmlPullParser xmlPullParser=Xml.newPullParser(); //获取xmlpull解析器
xmlPullParser.setInput(is,"utf-8"); //设置编码方式
int event=xmlPullParser.getEventType(); //获取PULL解析器的第一个事件
while(event!=XmlPullParser.END_DOCUMENT){
switch(event){
case XmlPullParser.START_DOCUMENT:
//开始解析
mlist =new ArrayList<Person>();
break;
case XmlPullParser.START_TAG: //开始元素
if("person".equals(xmlPullParser.getName())){
int id=new Integer(xmlPullParser.getAttributeValue(0));
person=new Person();
person.setId(id);
}
if(person!=null){
if("name".equals(xmlPullParser.getName())){
person.setName(xmlPullParser.nextText());
}
if("age".equals(xmlPullParser.getName())){
person.setAge(Integer.valueOf(xmlPullParser.nextText()));
}
}
break;
case XmlPullParser.END_TAG: //结束元素
mlist.add(person);
break;
}
event=xmlPullParser.next(); //触发下一个事件
}
return mlist;
}
}
|