安卓xml序列化和xml解析模板
xml解析
//xml文件的pull解析
try {
// 1.通过Xml获取一个XmlPullParser对象
XmlPullParser parser = Xml.newPullParser();
//2.设置解析器的初始化参数
File file = new File(getFilesDir(), "xxx.xml");
FileInputStream in = new FileInputStream(file);
parser.setInput(inputStream, "utf-8");
// 3.获取当前xml行的事件类型
int eventType = parser.getEventType();
// 4.判断事件类型是否是文档结束的事件类型
while (eventType != XmlPullParser.END_DOCUMENT) {
// 5.如果不是,循环遍历解析每一行的数据。解析一行后,获取下一行的事件类型
String currentTagName = parser.getName();
// 判断当前行的事件类型是开始标签还是结束标签
switch (eventType) {
case XmlPullParser.START_TAG:
// 开始标签的处理
if ("address".equals(tagName)) {
String address = parser.nextText();
//编写逻辑
} else if ("body".equals(tagName)) {
String body = parser.nextText();
//编写逻辑
}
break;
case XmlPullParser.END_TAG:
// 结束标签的处理
if("sms".equals(parser.getName())){
//编写逻辑
}
break;
default:
break;
}
eventType = parser.next();
// 获取下一个节点
}
}
xml序列化
//xml文件的序列化
try {
// 1.得到xml文件的序列化器
XmlSerializer serializer = Xml.newSerializer();
// 2.指定序列化器的一些初始参数
File file = new File(getFilesDir(), "msg.xml");
FileOutputStream out = new FileOutputStream(file);
// 3.写xml文件
serializer.setOutput(out, "utf-8");
// 设置输出流信息
serializer.startDocument("utf-8", true);
// 设置头信息
serializer.startTag(null, "root");
// 设置根标签serializer.startTag(null, "sms");
serializer.attribute(null, name, value)// 写标签属性serializer.startTag(null, "address");
// 开始标签
serializer.text(address);
// 写文本标签
serializer.endTag(null, "address");
// 结束标签serializer.startTag(null, "body");
serializer.text(body);
serializer.endTag(null, "body");
serializer.startTag(null, "type");
serializer.text(type);
serializer.endTag(null, "type");
serializer.startTag(null, "date");
serializer.text(date);
serializer.endTag(null, "date");
serializer.endTag(null, "sms");
serializer.endTag(null, "root");
serializer.endDocument();
out.close();
//关闭输出流
Toast.makeText(this, "xml序列化成功", 0).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "xml序列化失败", 0).show();
}
推荐阅读
- mybatisplus如何在xml的连表查询中使用queryWrapper
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 微信小程序基础知识
- 打死都不会用安卓手机(试用两天之后(嗯,真香!))
- 笔记|如何在Windows11安装安卓子系统()
- android|android today上下卡片,【精品文档】关于计算机专业大学生安卓系统有关的外文文献翻译成品(基于Android(安卓)的考勤管理系统(中英文双语对照)
- 使用sqlalchemy|使用sqlalchemy orm 的model序列化,解决返回model的异常
- iOS开发中|iOS开发中 xml 数据请求
- 安卓软键盘
- 安卓、常见错误、规整