Android:Xml(读取与存储)
1.读取XML文件
参数xml是建含xml数据的输入流,List<Person> persons用于存储xml流中的数据。
XmlPullParser类的几个方法:next(),nextToken() ,getEventType().
/**
* 获取xml数据
* */
public List<Person> getPersons(InputStream xml) throws Exception{
List<Person>persons=null;
Person person=null;
XmlPullParser pullParser=Xml.newPullParser();
//为pull解析器设置要解析的xml数据,第一个参数为输入流,第二个为该数据的编码格式
pullParser.setInput(xml, "UTF-8");
int envnt =pullParser.getEventType();
while (envnt!=XmlPullParser.END_DOCUMENT) {
switch (envnt) {
case XmlPullParser.START_DOCUMENT: //开始文件时创建实例存储数据
persons=new ArrayList<Person>();
break;
case XmlPullParser.START_TAG : //标签开始,读取数据部分
if("person".equals(pullParser.getName())){
int id=new Integer(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())){
Integer age=new Integer(pullParser.nextText());
person.setAge(age);
}
30 pullParser.next(); //跳到到下一个标签
break;
case XmlPullParser.END_TAG: //标签结束部分
if("person".equals(pullParser.getName())){
//建解析出来的数据保存在List中,后置空person
persons.add(person);
person=null;
}
break;
}
}
return persons;
}
2:将数据写入xml文件
out为需要存储的xml数据类型的数据,可以存储进xml的数据类型可以是List<Person>中的。也可以是其他类型的数据。
/**
* 保存xml数据
* */
public void sava(List<Person> persons ,OutputStream out)throws Exception{
//得到序列化器
XmlSerializer serializer=Xml.newSerializer();
//见文件写入序列化器当中
serializer.setOutput(out, "UTF-8");
//创建xml头文件
serializer.startDocument("UTF-8", true);//true 表示该文件能不能单独存在
//创建标签头
serializer.startTag(null, "persons");//参数以为该文件的命名空间,参数二为标签名
//创建标签尾
for(Person person:persons){ //循环读取person标签的数据
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.endDocument();
out.flush();
out.close();
}
}
Android:Xml(读取与存储)的更多相关文章
- Android课程---关于数据存储的学习
activity_data1.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- Android应用开发SharedPreferences存储数据的使用方法
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
- 67.Android中的数据存储总结
转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...
- Android笔记——Android中数据的存储方式(一)
Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...
- 18.Android之SharedPreferences数据存储学习
SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来 ...
- Android五种数据存储方式
android 五种数据存储 :SharePreferences.SQLite.Contert Provider.File.网络存储 Android系统提供了四种存储数据方式.分别为:SharePre ...
- Android开发:SharedPreferences 存储数据、获取数据
Android开发:SharedPreferences 存储数据.获取数据 email:chentravelling@163.com 开发环境:win7 64位,Android Studio. 关于S ...
- 【Mark】Android应用开发SharedPreferences存储数据的使用方法
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
- Android中的数据存储(二):文件存储 2017-05-25 08:16 35人阅读 评论(0) 收藏
文件存储 这是本人(菜鸟)学习android数据存储时接触的有关文件存储的知识以及本人自己写的简单地demo,为初学者学习和使用文件存储提供一些帮助.. 如果有需要查看SharedPreference ...
随机推荐
- 推荐十款非常优秀的 HTML5 在线设计工具
网络有很多优秀的设计和开发工具可能大家都不知道,因此这篇文章就向设计师推荐十款优秀 HTML5 在线工具,这些工具能够帮助设计师们设计出更有创意的作品.随着 HTML5 技术的不断成熟,网络上涌现出越 ...
- setbuf和freopen
看memcached代码的时候学习了一个api,setbuf,可以设置文件流的缓冲区. #include <stdio.h> void setbuf(FILE *stream ...
- 在VB中使用Linq To SQLite注意事项
昨天使Linq To SQLite 支持VB,今天在VB中写了几条Linq语句,发现了几个问题: 1.在Linq To SQLite中的Linq语句查询后并不是得到的匿名数据类,而是将Linq转换为S ...
- Linux下安装、启动MySQL
启动与停止 1.启动 MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可. [root@localhost mysql]# /etc/init.d/my ...
- 配置Windows Update,补丁更新
配置Windows Update更新下载及安装方式: #NotificationLevel说明: # 0:未配置,不会对当前设置进行更改 # 1:从不检查更新 # 2:检查更新,但是让我选择是否下载和 ...
- OA系统权限管理设计(转载)
不论什么系统都离不开权限的管理,有一个好的权限管理模块,不仅使我们的系统操作自如,管理方便,也为系统加入亮点. l 不同职责的人员,对于系统操作的权限应该是不同的.优秀的业务系统,这是 ...
- C#实现对Word文件读写[转]
手头上的一个项目报表相对比较简单,所以报表打印采用VBA引擎,通过定制Word模版,然后根据模版需要填充数据,然后OK,打印即可. 实现方法:首先需要引用VBA组建,我用的是Office2003 Pr ...
- MyEclipse 8.5 Axis2 插件完整jar包
http://download.csdn.net/download/hob007/4457837 MyEclipse 8.5 安装 Axis2 插件所需的完整JAR包 两个axis2插件,以及三个ja ...
- iOS开发——语法篇OC篇&高级语法精讲
高级语法精讲 一.NSSet.NSMutableSet集合的介绍 1)NSSet.NSMutableSet集合,元素是无序的,不能有重复的值. 2)用实例方法创建一个不可变集合对象 例如: //宏定义 ...
- wkhtmltopdf 将网页生成pdf文件
先安装依赖 yum install fontconfig libXrender libXext xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi freetype l ...