基于Android XML解析与保存的实现

时间:2023-05-25 18:54:32 

解析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<Person> 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();
}

标签:android,xml解析
0
投稿

猜你喜欢

  • 教你轻松制作java视频播放器

    2023-06-25 06:34:05
  • android panellistview 圆角实现代码

    2022-09-03 17:34:19
  • Android 简单实现倒计时功能

    2023-06-27 11:35:40
  • Java实现获取指定个数的不同随机数

    2023-11-14 21:42:34
  • C#使用Redis的基本操作

    2023-12-03 11:03:51
  • Android 蓝牙连接 ESC/POS 热敏打印机打印实例(蓝牙连接篇)

    2021-12-02 10:21:18
  • Android仿微信长按录制视频并播放功能

    2023-02-16 23:26:33
  • springboot整合quartz项目使用案例

    2023-02-13 19:57:12
  • springBoot controller,service,dao,mapper,model层的作用说明

    2022-02-28 15:38:49
  • Spring-boot 2.3.x源码基于Gradle编译过程详解

    2022-04-07 15:41:36
  • 命令提示符编译java的方法(必看篇)

    2022-01-28 08:34:38
  • java处理数据库不支持的emoji表情符问题解决

    2021-08-21 00:16:58
  • Java设计模式之抽象工厂模式浅析讲解

    2022-08-08 18:26:47
  • C# 用什么方法将BitConverter.ToString产生字符串再转换回去

    2021-10-07 17:49:40
  • Unity3d 使用Gizmos画一个圆圈

    2022-05-22 05:10:52
  • Android实现缓存大图到SD卡

    2022-07-13 07:13:50
  • 详解Spring Security认证流程

    2022-04-16 15:48:46
  • Android实现沉浸式状态栏功能

    2022-10-25 23:19:36
  • 详解三种C#实现数组反转方式

    2023-10-09 20:29:23
  • Android编程自定义线程池与用法示例

    2021-11-27 14:46:53
  • asp之家 软件编程 m.aspxhome.com