有些時候,我們需要生成一個XML文件,生成XML文件的方法有很多,如:可以只使用一個StringBuilder組拼XML內容,然后把內容寫入到文件中;或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,這里推薦大家使用Pull解析器。
使用Pull解析器生成一個與itcast.xml文件內容相同的myitcast.xml文件
使用代碼如下(生成XML文件):
File xmlFile = new File(“myitcast.xml”);
FileOutputStream outStream = new FileOutputStream(xmlFile);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream, “UTF-8″);
BufferedWriter writer = new BufferedWriter(outStreamWriter);
writeXML(persons, writer);
writer.flush();
writer.close();
如果只想得到生成的xml內容,可以使用StringWriter:
StringWriter writer = new StringWriter();
writeXML(persons, writer);
String content = writer.toString();
代碼:
public static String writeXML(List
XmlSerializer serializer = Xml.newSerializer();
try {
serializer.setOutput(writer);
serializer.startDocument(“UTF-8″, true);
//第一個參數為命名空間,如果不使用命名空間,可以設置為null
serializer.startTag(“”, “persons”);
for (Person person : persons){
serializer.startTag(“”, “person”);
serializer.attribute(“”, “id”, person.getId().toString());
serializer.startTag(“”, “name”);
serializer.text(person.getName());
serializer.endTag(“”, “name”);
serializer.startTag(“”, “age”);
serializer.text(person.getAge().toString());
serializer.endTag(“”, “age”);
serializer.endTag(“”, “person”);
}
serializer.endTag(“”, “persons”);
serializer.endDocument();
return writer.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}