xml格式數據解析

xml格式如下

<?xmlversion="1.0" encoding="UTF-8"?>

<response>

    <code>1</code>        --返回碼

    <msg>成功</msg>       --返回信息

    <number>1</number>   --返回記錄數

    <data>

       <row>               --返回數據

           <yzm>1375</yzm>

       </row>

    </data>

</response>

pull解析

// 解析接口返回的xml數據
public static List<Map<String, String>> parserXml(String strXML) {
List<Map<String, String>> theList = null;
try {
// 利用ANDROID提供的API快速獲得pull解析器
XmlPullParser pullParser = Xml.newPullParser();
// 設置需要解析的XML數據
pullParser.setInput(new StringReader(strXML));
// 取得事件
int event = pullParser.getEventType();
// 若爲解析到末尾,文檔結束
Map<String, String> map = null;
Map<String, String> mapIn = null;
while (event != XmlPullParser.END_DOCUMENT) {
String nodeName = pullParser.getName();
switch (event) {
// 文檔開始
case XmlPullParser.START_DOCUMENT:
break;
// 標籤開始
case XmlPullParser.START_TAG:
if ("row".equalsIgnoreCase(nodeName)) {
map = new HashMap<String, String>();
}else if (map != null) {
String str = pullParser.nextText();
map.put(nodeName, str);
}
break;
// 標籤結束
case XmlPullParser.END_TAG:
if ("row".equalsIgnoreCase(nodeName)) {
if (map != null) {
if (theList == null)
theList = new ArrayList<Map<String, String>>();
if (theList != null)
theList.add(map);
map = null;
}
}
break;
}
// 下一個標籤
event = pullParser.next();
}
} catch (Exception e) {
e.printStackTrace();
theList = null;
}
return theList;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章