首页 > 代码库 > Android 学习之pull解析Xml
Android 学习之pull解析Xml
一、 PUll解析Xml
public static List<Person> xmlParser(InputStream xml) throws Exception { List<Person> persons=null; Person p=null; XmlPullParser parser=Xml.newPullParser(); parser.setInput(xml, "UTF-8"); int event=parser.getEventType(); while(event!=XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: persons=new ArrayList<Person>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("person")) { p=new Person(); p.setId(Integer.parseInt(parser.getAttributeValue(0))); } if (parser.getName().equals("name")) { p.setName(parser.nextText()); } if(parser.getName().equals("age")) { p.setAge(Integer.parseInt(parser.nextText())); } break; case XmlPullParser.END_TAG: if (parser.getName().equals("person")) { persons.add(p); p=null; } break; } event=parser.next(); } return persons; }
二、以Xml格式保存信息
public static void saveAsXml(List<Person> persons,OutputStream os)throws Exception { XmlSerializer xmlSerial= Xml.newSerializer(); xmlSerial.setOutput(os, "UTF-8"); xmlSerial.startDocument("UTF-8", true); xmlSerial.startTag(null, "persons"); for(Person person : persons) { xmlSerial.startTag(null, "person"); xmlSerial.attribute(null, "id",String.valueOf(person.getId())); xmlSerial.startTag(null, "name"); xmlSerial.text(person.getName()); xmlSerial.endTag(null, "name"); xmlSerial.startTag(null, "age"); xmlSerial.text(String.valueOf(person.getAge())); xmlSerial.endTag(null, "age"); xmlSerial.endTag(null, "person"); } xmlSerial.endTag(null, "persons"); xmlSerial.endDocument(); os.flush(); os.close(); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。