这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
这篇文章主要介绍了 Android XmlPullParser 方式解析 Xml 文档的相关资料, 需要的朋友可以参考下
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();
- }
- }
来源: http://www.phperz.com/article/17/0821/337531.html