package com.codeest.geeknews.util;
import android.content.res.XmlResourceParser;
import android.support.v4.util.ArrayMap;
/**
* Created by codeest on 16/12/30.
*/
public class XmlUtil {
public static ArrayMap<String, ArrayMap<String,String>> parseNodes(XmlResourceParser xmlResourceParser) throws Exception{
if (xmlResourceParser==null)
return null;
ArrayMap<String, ArrayMap<String,String>> map = null;
ArrayMap<String,String> nodeMap = null;
int root=xmlResourceParser.getEventType();
while (root!= XmlResourceParser.END_DOCUMENT){
switch (root){
case XmlResourceParser.START_DOCUMENT:
map = new ArrayMap<>();
break;
case XmlResourceParser.START_TAG:
if("index".equals(xmlResourceParser.getName())){
String nodeName = xmlResourceParser.getAttributeValue(0);
nodeMap = new ArrayMap<>();
if (map != null) {
map.put(nodeName, nodeMap);
}
}
else if ("node".equals(xmlResourceParser.getName())){
String node = xmlResourceParser.getAttributeValue(0);
String nodeName = xmlResourceParser.nextText();
if (nodeMap != null) {
nodeMap.put(node, nodeName);
}
}
break;
case XmlResourceParser.END_TAG:
if("index".equals(xmlResourceParser.getName())){
nodeMap = null;
}
break;
}
root=xmlResourceParser.next();
}
return map;
}
}