采用Pull解析器解析和生成XML内容.
Xml对象:

/** * 获取数据 * @param xml * @return * @throws Exception */ public static List<Person> getPersons(InputStream xml) throws Exception { List<Person> persons = null; Person person = null; XmlPullParser pullParser = Xml.newPullParser(); pullParser.setInput(xml, "UTF-8");//为Pull解析器设置要解析的XML数据 int event = pullParser.getEventType(); while(event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList<Person>(); //<?xml version = "1.0" encoding = "UTF-8"> break; case XmlPullParser.START_TAG: if("person".equals(pullParser.getName())){ int id = new Integer(pullParser.getAttributeValue(0)); person = new Person(); person.setId(id); } if(person != null) { if("name".equals(pullParser.getName())) { String name = pullParser.nextText(); person.setName(name); } if("age".equals(pullParser.getName())) { int age = new Integer(pullParser.nextText()); person.setAge(age); } } break; case XmlPullParser.END_TAG: if("person".equals(pullParser.getName())){ persons.add(person); person = null; } break; }//switch event = pullParser.next(); } return persons; }
用Pull解析器生成数据
/** * 保存数据 * @param persons 数据 * @param out 输出方向 * @throws Exception */ public static void save(List<Person> persons, OutputStream out) throws Exception{ XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(out, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "persons"); for(Person person : persons) { serializer.startTag(null, "person"); serializer.attribute(null, "id", person.getId().toString()); serializer.startTag(null, "name"); serializer.text(person.getName()); 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(); } }
利用类加载器获取项目里的XML文件
public void testPersons() throws Exception{ InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml"); List<Person> persons = PersonService.getPersons(xml); for(Person person : persons){ Log.i(TAG, person.toString()); } }

浙公网安备 33010602011771号