Android XmlPullParser 方式解析 Xml 文档
AndroidXmlPullParser方式解析Xml文档
xml文件格式
张三 22 李四 20 
XmlPullParser方式解析xml文件
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.util.ArrayList;
importjava.util.List;
importorg.xmlpull.v1.XmlPullParser;
importorg.xmlpull.v1.XmlSerializer;
importcom.eboy.domain.Person;
importandroid.util.Xml;
publicclassPersonService{
publicstaticListgetPersons(InputStreamxml)throwsException{
Listpersons=null;
Personperson=null;
XmlPullParserpullParser=Xml.newPullParser();
pullParser.setInput(xml,"UTF-8");//为Pull解释器设置要解析的XML数据
intevent=pullParser.getEventType();
while(event!=XmlPullParser.END_DOCUMENT){
switch(event){
caseXmlPullParser.START_DOCUMENT:
persons=newArrayList();
break;
caseXmlPullParser.START_TAG:
if("person".equals(pullParser.getName())){
intid=Integer.valueOf(pullParser.getAttributeValue(0));
person=newPerson();
person.setId(id);
}
if("name".equals(pullParser.getName())){
Stringname=pullParser.nextText();
person.setName(name);
}
if("age".equals(pullParser.getName())){
intage=Integer.valueOf(pullParser.nextText());
person.setAge(age);
}
break;
caseXmlPullParser.END_TAG:
if("person".equals(pullParser.getName())){
persons.add(person);
person=null;
}
break;
}
event=pullParser.next();
}
returnpersons;
}
/**
*保存数据到xml文件中
*@parampersons
*@paramout
*@throwsException
*/
publicstaticvoidsave(Listpersons,OutputStreamout)throwsException{
XmlSerializerserializer=Xml.newSerializer();
serializer.setOutput(out,"UTF-8");
serializer.startDocument("UTF-8",true);
serializer.startTag(null,"persons");
for(Personperson:persons){
serializer.startTag(null,"person");
serializer.attribute(null,"id",person.getId().toString());
serializer.startTag(null,"name");
serializer.text(person.getName().toString());
serializer.endTag(null,"name");
serializer.startTag(null,"age");
serializer.text(person.getAge().toString());
serializer.endTag(null,"age");
serializer.endTag(null,"person");
}
serializer.endTag(null,"persons");
serializer.endDocument();
out.flush();
out.close();
}
}
    
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!