xml文件如下:
新建一个person类:
读取xml文件中的内容:
保存数据到xml文件中:
<?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();
}
}