<?xml version="1.0" encoding="UTF-8"> <persons> <person id="1"> <name>aa</name> <age>30</age> </person> <person id="2"> <name>bb</name> <age>22</age> </person> </persons>
新建一个person类:
public class Person{ private int id; private String name; private String age; ...getter,setter }
读取xml文件中的内容:
/** * 读取xml文件中的内容 * @param xml * @return * @throws Exception */ public static List<Person> getPersons(InputStream xml) throws Exception { // 得到pull解析器 // XmlPullParser // pull=XmlPullParserFactory.newInstance().newPullParser(); List<Person> persons = null; Person person=null; XmlPullParser pull = Xml.newPullParser(); pull.setInput(xml, "UTF-8"); int event = pull.getEventType(); while (event!=XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: if("person".equals(pull.getName())){ int id=new Integer(pull.getAttributeValue(0)); person=new Person(); person.setId(id); } if("name".equals(pull.getName())){ String name=pull.nextText(); person.setName(name); } if("age".equals(pull.getName())){ int age=new Integer(pull.nextText()); person.setAge(age); } break; case XmlPullParser.END_TAG: if("person".equals(pull.getName())){ persons.add(person); person=null; } } event=pull.next(); } return persons; }
保存数据到xml文件中:
/** * 保存数据到xml文件 * @param persons * @param out * @throws Exception */ public void save(List<Person> persons,OutputStream out) throws Exception{ XmlSerializer s=Xml.newSerializer(); s.setOutput(out,"UTF-8"); s.startDocument("UTF-8", true); s.startTag(null, "persons"); for(Person p:persons){ s.startTag(null, "person"); s.attribute(null, "id", p.getId().toString()); s.startTag(null, "name"); s.text(p.getName().toString()); s.endTag(null, "name"); s.startTag(null, "age"); s.text(p.getAge().toString()); s.endTag(null, "age"); s.endTag(null, "person"); } s.endTag(null, "persons"); s.endDocument(); out.flush(); out.close(); } }