Android XML文件读写

复制代码 <? xmlversion="1.0"encoding="UTF-8" ?>
< persons >
< person id ="23" >
< name >eboy </ name >
< age >22 </ age >
</ person >
< person id ="24" >
< name >Frr </ name >
< age >20 </ age >
</ person >
</ persons > 复制代码

packagecom.eboy.service;

复制代码
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.util.ArrayList;
importjava.util.List;
importorg.xmlpull.v1.XmlPullParser;
importorg.xmlpull.v1.XmlSerializer;

importcom.eboy.domain.Person;

importandroid.util.Xml;

public classPersonService{
public staticList<Person>getPersons(InputStreamxml) throwsException{
List<Person>persons= null;
Personperson= null;
XmlPullParserpullParser=Xml.newPullParser();
pullParser.setInput(xml,"UTF-8"); // 为Pull解释器设置要解析的XML数据
intevent=pullParser.getEventType();

while(event!=XmlPullParser.END_DOCUMENT){

switch(event){

caseXmlPullParser.START_DOCUMENT:
persons= newArrayList<Person>();
break;
caseXmlPullParser.START_TAG:
if("person".equals(pullParser.getName())){
intid=Integer.valueOf(pullParser.getAttributeValue(0));
person= newPerson();
person.setId(id);
}
if("name".equals(pullParser.getName())){
Stringname=pullParser.nextText();
person.setName(name);
}
if("age".equals(pullParser.getName())){
intage=Integer.valueOf(pullParser.nextText());
person.setAge(age);
}
break;

caseXmlPullParser.END_TAG:
if("person".equals(pullParser.getName())){
persons.add(person);
person= null;
}
break;

}

event=pullParser.next();
}


returnpersons;
}

/**
*保存数据到xml文件中
*
@param persons
*
@param out
*
@throws Exception
*/
public static voidsave(List<Person>persons,OutputStreamout) throwsException{
XmlSerializerserializer=Xml.newSerializer();
serializer.setOutput(out,"UTF-8");
serializer.startDocument("UTF-8", true);
serializer.startTag( null,"persons");
for(Personperson: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();
}
} 复制代码

/Files/jxgxy/com.eboy.readwritexml.MainActivity.rar

转载地址

http://www.cnblogs.com/jxgxy/archive/2012/07/26/2609730.html

更多相关文章

  1. 七、Android数据链接更新路由表
  2. Android TableLayout数据列表的回显清空
  3. 三行代码去Android USB ADB调试确认对话框
  4. android连接数据库
  5. Android中Manifest.xml配置文件
  6. android之layout配置文件解读
  7. android 从tomcat读取文件出错:connect failed: ECONNREFUSED
  8. Android:dimen尺寸资源文件的使用
  9. 在Eclipse中导入整个Android系统代码

随机推荐

  1. android Sqlite3 相同sql 在命令行和数据
  2. Android插入USB设备,自动弹出提示运行apk
  3. 基于 SQLite 开发Android(安卓)studio 的
  4. Flutter 新闻客户端 - 09 详情页展示、分
  5. 新建Android,OpenGIS,Maven2等8个圈子,欢
  6. android crash 调试
  7. Android(安卓)Studio的各种冷知识,黑科技
  8. 让Android应用程序申请获取ROOT权限
  9. Android中service的使用
  10. Android(安卓)Studio修改项目编译版本