首页 > 系统 > Android > 正文

Android XmlPullParser 方式解析 Xml 文档

2019-12-12 02:42:30
字体:
来源:转载
供稿:网友

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(); }}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表