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(读取与存储)的更多相关文章

  1. Android课程---关于数据存储的学习

    activity_data1.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...

  2. Android应用开发SharedPreferences存储数据的使用方法

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

  3. 67.Android中的数据存储总结

    转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...

  4. Android笔记——Android中数据的存储方式(一)

    Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...

  5. 18.Android之SharedPreferences数据存储学习

    SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来 ...

  6. Android五种数据存储方式

    android 五种数据存储 :SharePreferences.SQLite.Contert Provider.File.网络存储 Android系统提供了四种存储数据方式.分别为:SharePre ...

  7. Android开发:SharedPreferences 存储数据、获取数据

    Android开发:SharedPreferences 存储数据.获取数据 email:chentravelling@163.com 开发环境:win7 64位,Android Studio. 关于S ...

  8. 【Mark】Android应用开发SharedPreferences存储数据的使用方法

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

  9. Android中的数据存储(二):文件存储 2017-05-25 08:16 35人阅读 评论(0) 收藏

    文件存储 这是本人(菜鸟)学习android数据存储时接触的有关文件存储的知识以及本人自己写的简单地demo,为初学者学习和使用文件存储提供一些帮助.. 如果有需要查看SharedPreference ...

随机推荐

  1. IoC模式(Inversion of Control)

      1.依赖 依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖.如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它.下面看 ...

  2. Python的包管理工具Pip

    接触了Ruby,发现它有个包管理工具RubyGem非常好用,而且有非常完备的文档系统http://rdoc.info 发现Python下也有相同的工具,包含easy_install和Pip.只是,我没 ...

  3. delphi 11 编辑模式 浏览模式

    编辑模式 浏览模式 设置焦点 //在使用前需要Webbrowser已经浏览过一个网页 否则错误 uses MSHTML; ///获取Webbrowser编辑模式里面的内容procedure EditM ...

  4. linux下tomcat开机自启动

    tomcat自启动配置: 方法一: vi /etc/rc.local 添加如下一行 /opt/apache-tomcat-7.0.29/bin/startup.sh (脚本绝对路径) 注意:要添加在e ...

  5. [AngularJS] Directive using another directive by 'require'

    Directive can use another directive though 'require' keyword. angular.module('docsTabsExample', []) ...

  6. oc-08-内存分析

    说有对象公用类的一个方法

  7. string 对象及其操作

    标准库类型string 标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件.作为标准库的一部分,string定义在命名空间std中.接下来的示例都假定了已包 ...

  8. Python实践之(七)逻辑回归(Logistic Regression)

    机器学习算法与Python实践之(七)逻辑回归(Logistic Regression) zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Pyth ...

  9. Apache以及PHP的默认编码问题解决(详解)

    如果你在网上搜索 “apache配置”,搜到的页面大多都会建议你在httpd.conf中加上这么一句:AddDefaultCharset GB2312.对于新手而且是只用GB2312编码的开发人来说, ...

  10. 分布式ActiveMQ集群--转载

    原文地址:http://shensy.iteye.com/blog/1752529 回顾总结前一段时间学习的ActiveMQ分布式集群相关的知识,分享出来希望对看到的人有所帮助. 一.分布式Activ ...