解析xml文件;
1先写一篇xml文件;
try {
FileOutputStream fos = new FileOutputStream("/sdcard/a.xml");
XmlSerializer s = Xml.newSerializer();
s.setOutput(fos, "utf-8");
s.startDocument("utf-8", true);
s.startTag(null, "email").attribute(null, "date", "2016,5,8")
.attribute(null, "time", "15:30");
s.startTag(null, "from").text("張三").endTag(null, "from")
.startTag(null, "toemail").text("李四")
.endTag(null, "toemail").startTag(null, "toemail")
.text("王五").endTag(null, "toemail");
s.startTag(null, "title").text("xml pull test")
.endTag(null, "title");
s.endTag(null, "email");
s.flush();
fos.close();
Toast.makeText(MainActivity.this, "生成成功", 5000).show();
} catch (Exception e) {
Toast.makeText(MainActivity.this, "写入失败", Toast.LENGTH_SHORT)
.show();
e.printStackTrace();
}
读取这篇xml文件;
try {
FileInputStream fis = new FileInputStream("/sdcard/a.xml");
XmlPullParser parser = Xml.newPullParser();
tv.setText("");
parser.setInput(fis, "utf-8");
int type;
while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
String name = parser.getName();
if (type == XmlPullParser.START_TAG) {
if (name.equals("email")) {
String date = parser.getAttributeValue(null, "date");
String time = parser.getAttributeValue(null, "time");
tv.append("\n日期:" + date);
tv.append("\n时间" + time);
} else if (name.equals("from")) {
tv.append("\n发件人:" + parser.nextText());
} else if (name.equals("toemail")) {
tv.append("\n收件人" + parser.nextText());
} else if (name.equals("title")) {
tv.append("\n标题:" + parser.nextText());
}
}
}
Toast.makeText(this, "读取成功了", Toast.LENGTH_LONG);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "读取失败", Toast.LENGTH_SHORT)
.show();
e.printStackTrace();
}