Android XmlPullParser 方式解析 Xml 文档
xml 文件格式
<?xml version="1.0" encoding="UTF-8"?><persons> <person id="1"> <name>张三</name> <age>22</age> </person> <person id="2"> <name>李四</name> <age>20</age> </person></persons>
XmlPullParser 方式解析 xml 文件
import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlSerializer;import com.eboy.domain.Person;import android.util.Xml; public class PersonService { 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>();    break;   case XmlPullParser.START_TAG:    if ("person".equals(pullParser.getName())) {     int id = Integer.valueOf(pullParser.getAttributeValue(0));     person = new Person();     person.setId(id);    }    if ("name".equals(pullParser.getName())) {     String name = pullParser.nextText();     person.setName(name);    }    if ("age".equals(pullParser.getName())) {     int age = Integer.valueOf(pullParser.nextText());     person.setAge(age);    }    break;    case XmlPullParser.END_TAG:    if ("person".equals(pullParser.getName())) {     persons.add(person);     person = null;    }    break;    }    event = pullParser.next();  }  return persons; }  /**  * 保存数据到xml文件中  * @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().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(); }}感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
新闻热点
疑难解答