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{ List persons=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(List persons,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(); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!