Android利用Pull解析器对List进行解析存储为XML文件(二)

该博客介绍了如何利用Android的Pull解析器将List对象序列化并存储为XML文件。在上篇博文中,已讲解了如何从XML解析到List,本篇则重点展示将数据写入到XML文件的过程。
摘要由CSDN通过智能技术生成

在上篇博客我们涉及到了利用Pull解析器对xml进行解析,转换为LIst对象。这里是链接

http://blog.csdn.net/wjg19890301/article/details/10456233


这篇呢,来看一下PULL解析器如何将LIst<Person>序列化到XML文件中去在上篇的PollXmlService中加入一个方法

我们需要一个LIst对象和一个输出流

/**
	 * 将List<Person>对象序列化到xml中
	 * @param persons
	 * @param ops
	 * @throws Exception
	 */
	public final static void exportXml(List<Person> persons,OutputStream ops)throws Exception{
		//创建xml序列化器
		XmlSerializer xs=Xml.newSerializer();
		//设置输出流
		xs.setOutput(ops, "UTF-8");
		//创建xml开始文档节点
		xs.startDocument("UTF-8", true);
		xs.startTag(null,"persons");
		for (Person person : persons) {
			xs.startTag(null,"person");
			xs.attribute(null, "id", person.getId().toString());
			
			xs.startTag(null, "name");
			xs.text(person.getName());
			xs.endTag(null, "name");
			
			xs.startTag(null, "age");
			xs.text(person.getAge().toString());
			xs.endTag(null, "age");
			xs.endTag(null, "person");
		}
		xs.endTag(null, "persons");
		xs.endDocument();
		ops.flush();
		ops.close();
	}

好了。现在开始测试,在上次的测试类中加入一个测试方法

public void testExportXml() throws Exception{
		List<Person> persons=new ArrayList<Person>();
		persons.add(new Person(1,"你妹",25));
		persons.add(new Person(2,"呵呵",12));
		persons.add(new Person(3,"哈哈",43));
		persons.add(new Person(4,"嘿嘿",56));
		File file=new File(this.getContext().getFilesDir().getAbsoluteFile()+"/testpersons.xml");
		FileOutputStream fos=new FileOutputStream(file);
		PollXmlService.exportXml(persons, fos);
	}

执行Android Junit Test

来看一下我们自定义的文件testpersons.xml文件生成了


把xml导出到桌面上,打开看一下

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<persons><person id="1"><name>你妹</name><age>25</age></person>
	<person id="2"><name>呵呵</name><age>12</age></person>
	<person id="3"><name>哈哈</name><age>43</age></person>
	<person id="4"><name>嘿嘿</name><age>56</age></person>
</persons>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值