在上一篇博客,Android-XML格式描述,介绍来XML在Android中的格式;

生成xml文件格式数据,Android提供了Xml.newSerializer();,可以理解为Xml序列化;

序列化:把内存里面的数据(file,databases,xml 等等) 丢给某一个地方;
反序列化:把某个地方的数据(file,databases,xml 等等),拿到内存中;

既然是Android操作Xml,就用Android所提供的API,不用Java所提供的API,DOM解析,SAX解析了;

@Override
public void onClick(View v) { // 模拟20条Person数据
List<Person> persons = new ArrayList<Person>();
for (int i=0; i<20; i++) {
persons.add(new Person(i, "zhangsan" + i, i+10));
}
Log.d(TAG, "persons.size():" + persons.size()); // persons.size():20 try {
// 如何创建xml文件,然后把这20条数据,写入xml文件里面去,一定是去看Android提供的API
XmlSerializer serializer = Xml.newSerializer();
// 指定流目录
OutputStream os = openFileOutput("persons.xml", Context.MODE_PRIVATE);
// 设置指定目录
serializer.setOutput(os, "UTF-8"); // 开始写入Xml格式数据
// 开始文档
// 参数一:指定编码格式 参数二:是不是独立的xml(这个xml与其他xml是否有关联)
serializer.startDocument("UTF-8", true); // 开始根标签
// 参数一:命名空间 参数二:标签名称
serializer.startTag(null, "persons"); for (Person person : persons) {
// 开始子标签
serializer.startTag(null, "person"); // 设置属性
serializer.attribute(null, "id", String.valueOf(person.getId())); // 设置name
// 开始name标签
serializer.startTag(null, "name");
// 写入值
serializer.text(person.getName());
// 结束name标签
serializer.endTag(null, "name"); // 设置age
// 开始age标签
serializer.startTag(null, "age");
// 写入age值
serializer.text(String.valueOf(person.getAge()));
// 结束age标签
serializer.endTag(null, "age"); // 结束子标签
serializer.endTag(null, "person");
} // 结束根标签
serializer.endTag(null, "persons"); // 结束文档
serializer.endDocument();
}catch (Exception e) {
e.printStackTrace();
}
}

执行后的结果:

打开看看:

最新文章

  1. MYSQL的常用命令和增删改查语句和数据类型【转】
  2. NOPI导出加载模板
  3. JPA merge(obj) 方法
  4. matlab中使用fuzzy工具箱
  5. Wifite v2 is now available
  6. Android内存优化(使用SparseArray和ArrayMap代替HashMap)
  7. MyBatis之四:调用存储过程含分页、输入输出参数
  8. Linux gvim windows 版本配置
  9. Project: Individual Project - Word frequency program-11061160顾泽鹏
  10. RESTful API学习与实践
  11. JS如何判断包括IE11在内的IE浏览器
  12. gis电子地图开发公司面临的挑战和机遇
  13. 【Python】 命名空间与LEGB规则
  14. UML之部署图
  15. GlitchBot -HZNU寒假集训
  16. 【DWM1000】 code 解密1一 去掉Main 函数多余内容
  17. bzoj 4128 矩阵求逆
  18. asyncio queue
  19. 用Jenkins自动化搭建测试环境-前奏
  20. PreApplicationStartMethodAttribute程序启动扩展

热门文章

  1. Linux就业技术指导(三):IDC机房解密
  2. sql重复数据只取一条记录
  3. Educational Codeforces Round 58
  4. 39. recover rotated sorted array恢复旋转排序数组
  5. &lt;摘录&gt;开源软件架构-ZeroMQ
  6. Debian8 下面 muduo库编译与使用
  7. struts2 的 ServletActionContext 和 actionContext,服务器代码测试, redirect 、dispatcher、chain、redirectAction
  8. KbmMW 服务器架构简介
  9. 2018.09.27 bzoj2118: 墨墨的等式(最短路+背包)
  10. 2018.07.03 BZOJ 1007: [HNOI2008]水平可见直线(简单计算几何)