XML的读写又称序列化和反序列化。这里使用XmlSerializer和xmlPullParser。
写XML文件,即序列化,写入对象m.xml
OutputStream out = new FileOutputStream(m);
XmlSerializer serializer = Xml.newSerializer(); // 由android.util.Xml创建一个XmlSerializer实例
serializer.setOutput(out, "UTF-8"); // 设置输出方向和格式
serializer.startDocument("UTF-8", true);
serializer.startTag("", "TaskList");
for (int i = 0; i < 5; i++) {
serializer.startTag("", "Task");
serializer.startTag("", "content");
serializer.attribute("", "id", i + 1 + "");
serializer.text("");
serializer.endTag("", "content");
serializer.endTag("", "Task");
}
serializer.endTag("", "TaskList");
serializer.endDocument();
out.close();
得到的xml如下
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<TaskList>
<Task>
<content id="1"/>
</Task>
<Task>
<content id="2"/>
</Task>
<Task>
<content id="3"/>
</Task>
<Task>
<content id="4"/>
</Task>
<Task>
<content id="5"/>
</Task>
</TaskList>
读取xml,反序列化,解析过程,将5个content中的字符串分别赋给EditView对象数组ets[5]中的成员
InputStream in = new FileInputStream(m);
XmlPullParser parser = Xml.newPullParser();
parser.setInput(in, "UTF-8");
parser.next();
for (int i = 0; i < 5; ) {
if (parser.getName().equals("content")) {
ets[i].setText(parser.nextText());
i++;
}
parser.nextTag();
}
in.close();