核心代码:
public List<Person> parseXML(InputStream xml) throws Exception{
List<Person> persons=null;
Person person=null;
//获得解析器
XmlPullParser pullParser=Xml.newPullParser();
//设置解析的输入流及编码格式
pullParser.setInput(xml, "UTF-8");
int event=pullParser.getEventType();
while(event!=XmlPullParser.END_DOCUMENT ){
switch(event){
//文档的开始,则初始化persons集合
case XmlPullParser.START_DOCUMENT:
persons=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);
}
break;
//节点的结束,将person添加到集合中
case XmlPullParser.END_TAG:
if("person".equals(pullParser.getName())){
persons.add(person);
person=null;
}
break;
}
pullParser.next();
}
xml.close();
return persons;
}