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 ...
随机推荐
- c/c++字符串处理大集合
rember this strncpy(a,b,5); a[5]='\0'; char a[10]; memset(a,'#',sizeof(a)); a[10]='\0'; 刚开始学C/C++时,一 ...
- CSS基础(02)
CSS 选择器 1.CSS3 选择器简介 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. 语法: 下面中"CSS" 列指示该属性是在哪个 CSS 版本中定义的.(C ...
- WIM更新命令(打补丁)
在D盘新建3个文件夹:win7(install.wim).updates(补丁).win7ultra 1.先打开ISO文件,然后加载映像到D:\win7ultra文件夹dism /mount-wim ...
- Ribbon 窗体的 MDI 子窗体使用 TabbedMDIManager 切换时工具条闪屏问题的解决办法
补充说明: 此问题已经在新版本中解决(15.2.6),方法更加简单,只需要在 MDIChild 窗体的 Create 方法中,将 Ribbon 的 Visible 属性设置为 false 就可以了,且 ...
- crm操作货币实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; /// <summary> ...
- Codeforces Gym 100500F Problem F. Door Lock 二分
Problem F. Door LockTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/at ...
- C#用天气预报的WebServices
后台代码: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { WeatherWS ws = new W ...
- 错误解决:release' is unavailable: not available in automatic reference counting mode
解决办法: You need to turn off Automatic Reference Counting. You do this by clicking on your project in ...
- Anaconda packages list
# packages in environment at D:\Applications\Anaconda3:#alabaster 0.7.6 py35_0 anaconda 2.4.0 np110p ...
- cocos2d-x使用tinyxml2存储解析xml
我用的是2.1.4的cocos2d-x,里面自带有tinyxml2库. 导入头文件:#include "support/tinyxml2/tinyxml2.h" using nam ...