需求:生成一个如下的XML文件并保存到SD卡中
![](https://img.haomeiwen.com/i5914881/2927b9534824ef49.png)
用StringBuffer的组合方式一步一步生成该XML文件
核心代码
//[1]实例化XmlSerializer
XmlSerializer xmlSerializer = Xml.newSerializer();
try {
//[2]设置参数 存储XML文件到SD卡中
File file = new File(Environment.getExternalStorageDirectory().getPath(), "smsbackup2.xml");
FileOutputStream fos = new FileOutputStream(file);
xmlSerializer.setOutput(fos,"utf-8");
//[3]写XML文件头部信息
xmlSerializer.startDocument("utf-8",true);
//[4]写smss节点
xmlSerializer.startTag(null,"smss");
//[5]写sms节点
for (Smss smss : mSmssList) {
xmlSerializer.startTag(null,"sms");
//[6]写name等属性节点
xmlSerializer.startTag(null,"name");
xmlSerializer.text(smss.getName());
xmlSerializer.endTag(null,"name");
xmlSerializer.startTag(null,"city");
xmlSerializer.text(smss.getCity());
xmlSerializer.endTag(null,"city");
xmlSerializer.startTag(null,"age");
xmlSerializer.text(smss.getAge());
xmlSerializer.endTag(null,"age");
xmlSerializer.endTag(null,"sms");
}
xmlSerializer.endTag(null,"smss");
xmlSerializer.endDocument();
//关闭流
fos.close();
Toast.makeText(this, "写文件成功", Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
Toast.makeText(this, "文件异常写文件失败", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "IO异常写文件失败", Toast.LENGTH_SHORT).show();
}
程序执行结果导出的XML用ie浏览器打开
![](https://img.haomeiwen.com/i5914881/7e8c5f3889cf4d3d.png)
总结:
- 实例化
- 设置参数 setoutput主要是保存xml到指定路径
- 调用API写xml文件相关内容
不要去背API 只要记得XmlSerializer用来生成xml文件即可 使用时查阅google官方API文档即可 部分API如下
![](https://img.haomeiwen.com/i5914881/41a6456d163b443a.png)
Demo的源码地址: https://github.com/MengkZhang/aboutxml
网友评论