ParseXmlByString传入字符串,get标签名即可
/**
* 将Document对象转为Map(String→Document→Map)
* @param doc
* @return
*/
@SuppressWarnings("rawtypes")
public static Map<String, Object> Dom2Map(Document doc){
Map<String, Object> map = new HashMap<String, Object>();
if(doc == null)
return map;
Element root = doc.getRootElement();
for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
Element e = (Element) iterator.next();
//System.out.println(e.getName());
List list = e.elements();
if(list.size() > 0){
map.put(e.getName(), Dom2Map(e));
}else
map.put(e.getName(), e.getText());
}
return map;
}
/**
* 将Element对象转为Map(String→Document→Element→Map)
* @param e
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static Map Dom2Map(Element e){
Map map = new HashMap();
List list = e.elements();
if(list.size() > 0){
for (int i = 0;i < list.size(); i++) {
Element iter = (Element) list.get(i);
List mapList = new ArrayList();
if(iter.elements().size() > 0){
Map m = Dom2Map(iter);
if(map.get(iter.getName()) != null){
Object obj = map.get(iter.getName());
if(!obj.getClass().getName().equals("java.util.ArrayList")){
mapList = new ArrayList();
mapList.add(obj);
mapList.add(m);
}
if(obj.getClass().getName().equals("java.util.ArrayList")){
mapList = (List) obj;
mapList.add(m);
}
map.put(iter.getName(), mapList);
}else
map.put(iter.getName(), m);
}
else{
if(map.get(iter.getName()) != null){
Object obj = map.get(iter.getName());
if(!obj.getClass().getName().equals("java.util.ArrayList")){
mapList = new ArrayList();
mapList.add(obj);
mapList.add(iter.getText());
}
if(obj.getClass().getName().equals("java.util.ArrayList")){
mapList = (List) obj;
mapList.add(iter.getText());
}
map.put(iter.getName(), mapList);
}else
map.put(iter.getName(), iter.getText());//公共map resultCode=0
}
}
}else
map.put(e.getName(), e.getText());
return map;
}
public static Map<Object,Object> ParseXmlByString(String xmlStr){
SAXReader saxReader = new SAXReader();
Document document;
Map<Object,Object> skuMap = new HashMap<>();
try {
document = saxReader.read(new ByteArrayInputStream(xmlStr.getBytes()));
Map map = Dom2Map(document);
Map messageMap = (Map)map.get("Message");
Map processingReportMap = (Map)messageMap.get("ProcessingReport");
List<Map> resulMap = (List<Map>) processingReportMap.get("Result");
for (Map obj : resulMap){
Map AdditionalInfoSkuMap = (Map)obj.get("AdditionalInfo");
skuMap.put(AdditionalInfoSkuMap.get("SKU"),obj.get("ResultDescription"));
}
} catch (DocumentException e) {
e.printStackTrace();
}
return skuMap;
}