- Pull解析方式
比如解析以下一段xml字符串:
<apps>
<app>
<name>Google Maps</name>
<version>1.0</version>
</app>
<app>
<name>Chrome</name>
<version>2.1</version>
</app>
</apps>
示例代碼:
public void parseXMLWithPull(String xmlData) throws Exception{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(new StringReader(xmlData));
int eventType = parser.getEventType();
String name = "";
String version = "";
while (eventType != XmlPullParser.END_DOCUMENT) {
String nodeName = parser.getName();
switch (eventType) {
// 開始解析某個(gè)結(jié)點(diǎn)
case XmlPullParser.START_TAG: {
if ("name".equals(nodeName)) {
name = parser.nextText();
} else if ("version".equals(nodeName)) {
version = parser.nextText();
}
break;
}
// 完成解析某個(gè)結(jié)點(diǎn)
case XmlPullParser.END_TAG: {
if ("app".equals(nodeName)) {
Log.d("MainActivity", "name is " + name);
Log.d("MainActivity", "version is " + version);
}
break;
}
default:
break;
}
eventType = parser.next();
}
}