解析XML文件:
在Android平台上可以使用SAX、DOM和Android附带的pull解析器解析XML文件;
pull解析器提供了各种事件,使用parser.next()方法进入下一个元素并触发相应事件,pull解析器产生的事件是一个数字,可以通过switch对感兴趣的事件进行处理;通过paser.nextText()方法可以获取下一个Text类型的节点的值;
http://xmlpull.org/xmlpull-website/impls.shtml;

读取XML
XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(xml, "UTF-8");//为破解器添加要解析的XML数据
int event = pullParser.getEventType();//开始读取,获取事件返回值
pullParser.getName();//获取节点名称
pullParser.getAttributeValue(0);//获取第一个属性的值
pullParser.nextText();//获取标签之后的节点的内容
event = pullParser.next();//解析器遇到结束标签不会自动向下解析,需要调用此方法进行继续执行;

保存文件到XML

public static void save(List persons, OutputStream outStream)
throws Exception, IllegalStateException, IOException {
XmlSerializer serializer = Xml.newSerializer();//获取XML写入信息的序列化对象
serializer.setOutput(outStream, "UTF-8");//设置要写入的OutputStream
serializer.startDocument("UTF-8", true);//设置文档标签

serializer.startTag(null, "persons");//设置开始标签,第一个参数为namespace
for (Person person : persons) {
serializer.startTag(null, "person");
serializer.attribute(null, "id", person.getId().toString());

serializer.startTag(null, "name");
serializer.text(person.getName());
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();
outStream.flush();
outStream.close();
}

更多相关文章

  1. View事件传递分析
  2. Android的Touch系统简介(一)
  3. Android轮询机制
  4. 关于Android中解析xml文件qName和localName的问题
  5. [ZT]Android线程模型(Painless Threading)
  6. Android(安卓)滑动效果入门篇(二)—— Gallery
  7. Android(安卓)应用初始化及窗体事件的分发
  8. 《IT蓝豹》高仿花田ios版标签移动效果
  9. Android(安卓)中ListView setOnItemClickListener点击无效原因分

随机推荐

  1. 设置Android(安卓)Studio工程布局文件的
  2. Android(安卓)AppWidget的一些用法和注意
  3. 关于Android(安卓)ANR的思考
  4. Bundle携带对象来传输对象
  5. Log图文详解(Log.v,Log.d,Log.i,Log.w,Lo
  6. 使用Android来画一个钟表
  7. 自定义itemClickView
  8. 菜鸟的安卓实习之路---设置Activity的大
  9. Android(安卓)Handler学习之异步与多线程
  10. android的DialogFragment设置全屏之后,里