如何用XMLSeralizer序列化器来写xml呢?
我们先要对XMLSeralizer序列化器有一个认识。XMLSeralizer序列化器主要是一个工具,一个方便编辑xml文档的工具。XMLSeralizer序列化器跟StringBuilder是对应的。如果想了解StringBuilder是如何写xml的,可以点击使用StringBuilder写xml实例。
通过了解我们知道StringBuilder写xml,过程大概是以下代码:
StringBuilder xhh = new StringBuilder();
xhh.append("");
xhh.append("
for (SMS sms:smsList){
xhh.append("
xhh.append("
xhh.append(sms.from);
xhh.append("");
xhh.append("
..........
XMLSeralizer序列化器跟这个有所不同,以下是XMLSeralizer序列化器对于xml的写法。
public void saveSMS(View v) throws Exception {
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(openFileOutput("smslist.xml", MODE_PRIVATE), "utf-8");
serializer.startDocument("utf-8", true);
serializer.startTag(null, "SMSList");
for(SMS sms:smsList){
//д
serializer.startTag(null, "SMS");
serializer.startTag(null, "from");
serializer.text(sms.from);
serializer.endTag(null, "from");
serializer.startTag(null, "content");
serializer.text(sms.content);
serializer.endTag(null, "content");
serializer.startTag(null, "time");
serializer.text(sms.time);
serializer.endTag(null, "time");
//
serializer.endTag(null, "SMS");
}
serializer.endTag(null, "SMSList");
serializer.endDocument();
}
通过这段java代码可以看出来,XMLSeralizer序列化器跟StringBuilder写xml结果是一样的,不一样的是过程。只不过在startTag和endTag上面跟StringBuilder不太一样。