废话不多说,直接上代码:
生成的xml文件如下:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<persons>
<person id="1">
<name>张进</name>
<age>24</age>
</person>
<person id="2">
<name>李明</name>
<age>30</age>
</person>
</persons>
JAVA代码如下:
public class PullParse {
//创建XML文件
public void createXmlFile(BufferedWriter br){
Person person1 = new Person(1,"张进",24);
Person person2 = new Person(2,"李明",30);
List<Person> list = new ArrayList<Person>();
list.add(person1);
list.add(person2);
XmlSerializer mXmlSerializer = Xml.newSerializer();
try {
mXmlSerializer.setOutput(br);
//开始文档
mXmlSerializer.startDocument("UTF-8", true);
//设置元素节点
mXmlSerializer.startTag("", "persons");
for(Person p : list){
mXmlSerializer.startTag("", "person");
//设置属性
mXmlSerializer.attribute("", "id", String.valueOf(p.id));
mXmlSerializer.startTag("", "name");
mXmlSerializer.text(p.name);
mXmlSerializer.endTag("", "name");
mXmlSerializer.startTag("", "age");
//设置文本节点
mXmlSerializer.text(String.valueOf(p.age));
mXmlSerializer.endTag("", "age");
mXmlSerializer.endTag("", "person");
}
mXmlSerializer.endTag("", "persons");
mXmlSerializer.endDocument();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
使用JUNIT进行单元测试:
public void TestCreateXmlFile() throws Exception{
File file = new File("/sdcard/person.xml");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"));
PullParse mPullParse = new PullParse();
mPullParse.createXmlFile(bw);
}
哦,别忘记了加上SD卡操作权限;
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>