XML是一种可扩展的标记语言,一般用来传输数据及少量数据存储,而非显示数据。
<?xml version="1.0" encoding="UTF-8"?>
<map>
<name>测试</name>
</map>
在Android中提供XML类来操作XML。
XML写入
private void writeXml() throws Exception {
//获取Xml序列化对象
XmlSerializer xmlSerializer = Xml.newSerializer();
//绑定输出流
xmlSerializer.setOutput(openFileOutput("test.xml", MODE_PRIVATE), "UTF-8");
//开始写入
xmlSerializer.startDocument("UTF-8", true);
//根据XML结构写入,开始/结束对应
xmlSerializer.startTag(null, "Map");
xmlSerializer.startTag(null, "Name");
xmlSerializer.text("测试内容");
xmlSerializer.endTag(null, "Name");
xmlSerializer.endTag(null, "Map");
//结束写入,从内容写入磁盘
xmlSerializer.endDocument();
}
Pull解析XML
private void readXml() throws Exception {
//获取XMLPull解析器
XmlPullParser xmlPullParser = Xml.newPullParser();
//绑定输入流
xmlPullParser.setInput(openFileInput("test.xml"), "UTF-8");
/**
* Pull解析是基于事件的解析,因此专门定了几个常量表示状态
* START_DOCUMENT 0
* END_DOCUMENT 1
* START_TAG 2
* END_TAG 3
* TEXT 4
*/
int eventType = xmlPullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG
//xmlPullParser.getName() 获取节点名
&& xmlPullParser.getName().equals("Name")) {
//xmlPullParser.nextText(); 获取节点内容
String resValue = xmlPullParser.nextText();
Log.i("TagInfo", resValue);
}
//不断读取下一条,直到结束
eventType = xmlPullParser.next();
}
}
网友评论