android中才Pull解析器生成xml文档

本文介绍了一种在Android环境中使用Pull解析器生成XML文档的方法,并提供了一个业务类的示例代码,该类能够从Person对象列表生成XML文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面我们知道了怎样去解析xml文档,NOW如果让我们去生成xml文档怎么做呢?在这里其实有很多的方法可以去做例如我们可以再android中使用StringBuilder来组拼xml文档也可以使用DomAPI来生成xml文档,如果在像android这样的手机设备我们最好使用pull解析器去生成xml文档。那么下面就让我们来实现吧!

下面的业务类封装了生成xml文档过程

public class WriteXMLService {

public String WriteXml(List<Person> ls,Writer writer)
{
XmlSerializer serializer=Xml.newSerializer();

try {
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);//写<?xml version="1.0" encoding="UTF-8"?>
//第一个参数为命名空间,如果不使用命名空间,可以设置为null
serializer.startTag(null, "persons");//写根元素<persons>
for(Person person:ls)
{
serializer.startTag(null, "person");//写<person id="23">
serializer.attribute(null, "id", person.getId()+"");
serializer.startTag(null, "name");
serializer.text(person.getName());
serializer.endTag(null, "name");
serializer.startTag(null, "age");
serializer.text(person.getAge()+"");
serializer.endTag(null, "age");
serializer.endTag(null, "person");
}
serializer.endTag(null,"persons");
serializer.endDocument();
} catch (Exception e) {

e.printStackTrace();
}
return writer.toString();

}
}
下面这个是单元测试方法:

 

注意下面的几个函数在我前面解析xml函数中可以找到为了偷懒就直接拿过来用了:

 

//写xml文档
public void testWriteXml()
{
//先加载数据
DOMParsseService service = new DOMParsseService();
InputStream inStream = getClass().getClassLoader().getResourceAsStream("person.xml");
List<Person> persons = service.readXMLDOM(inStream);
/////////
// File writer=new File(Environment.getExternalStorageDirectory(),"writeperson.xml");

//FileOutputStream outputStream;
try {
FileOutputStream outputStream=getContext().openFileOutput("writeperson.xml",Context.MODE_PRIVATE);
//outputStream = new FileOutputStream(writer);
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter);
WriteXMLService xmlService=new WriteXMLService();
xmlService.WriteXml(persons, bufferedWriter);
bufferedWriter.flush();
bufferedWriter.close();
} catch (Exception e) {

e.printStackTrace();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青年IT男

您的打赏就是对我的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值