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();
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# XmlPullParser
# 解析
# Xml
# 文档
# Android编程解析XML文件的方法详解【基于XmlPullParser】
# Android编程使用pull方式解析xml格式文件的方法详解
# 详解Android之解析XML文件三种方式(DOM
# PULL
# SAX)
# Android解析XML(PULL)展示到ListView
# Android平台基于Pull方式对XML文件解析与写入方法详解
# 实例解析Android中使用Pull解析器解析XML的方法
# android4.0混淆XmlPullParser报错原因分析解决
# Android pull解析xml的实现方法
# 希望能
# 谢谢大家
# 李四
# util
# OutputStream
# org
# List
# ArrayList
# InputStream
# java
# io
# import
# public
相关文章:
长沙企业网站制作哪家好,长沙水业集团官方网站?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
动图在线制作网站有哪些,滑动动图图集怎么做?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
javascript中对象的定义、使用以及对象和原型链操作小结
常州企业建站如何选择最佳模板?
如何高效利用亚马逊云主机搭建企业网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
如何做静态网页,sublimetext3.0制作静态网页?
Python lxml的etree和ElementTree有什么区别
高端网站建设与定制开发一站式解决方案 中企动力
如何彻底卸载建站之星软件?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
香港服务器网站推广:SEO优化与外贸独立站搭建策略
音响网站制作视频教程,隆霸音响官方网站?
如何快速配置高效服务器建站软件?
如何通过PHP快速构建高效问答网站功能?
,有什么在线背英语单词效率比较高的网站?
,制作一个手机app网站要多少钱?
建站之星展会模版如何一键下载生成?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
怀化网站制作公司,怀化新生儿上户网上办理流程?
建站之星Pro快速搭建教程:模板选择与功能配置指南
网站制作壁纸教程视频,电脑壁纸网站?
XML的“混合内容”是什么 怎么用DTD或XSD定义
建站ABC备案流程中有哪些关键注意事项?
如何挑选高效建站主机与优质域名?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
如何在IIS中新建站点并解决端口绑定冲突?
如何快速上传自定义模板至建站之星?
如何通过主机屋免费建站教程十分钟搭建网站?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
建站主机选择指南:服务器配置与SEO优化实战技巧
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何配置IIS站点权限与局域网访问?
如何实现建站之星域名转发设置?
婚礼视频制作网站,学习*后期制作的网站有哪些?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
制作网站公司那家好,网络公司是做什么的?
如何通过cPanel快速搭建网站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
制作旅游网站html,怎样注册旅游网站?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
建站之星如何快速解决建站难题?
建站主机选购指南:核心配置优化与品牌推荐方案
*请认真填写需求信息,我们会在24小时内与您取得联系。