根据网上的一些方法稍加修改写的一个工具类
package com.gateway.utils;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlUtils {
public static Map<String, Object> xml2Map(String xml){
Map<String, Object> map = new HashMap<String, Object>();
Document doc = null;
try {
doc = DocumentHelper.parseText(xml);
} catch (DocumentException e) {
e.printStackTrace();
}
//获取根节点
Element root = doc.getRootElement();
element2Map(root,map);
return map;
}
public static void element2Map(Element el, Map<String, Object> map){
if(el == null){
return;
}
String rootName = el.getName();
if(el.isTextOnly()){
map.put(rootName, el.getText());
}else{
Map<String, Object> listMap = new HashMap<String, Object>();
List<Element> elements = el.elements();
for(Element elem : elements){
element2Map(elem, listMap);
}
Object first = map.get(rootName);
if(first == null){
List<Object> list = new ArrayList<Object>();
list.add(listMap);
map.put(rootName, list);
}else{
if(first instanceof List<?>){
((List) first).add(listMap);
}else{
List<Object> list = new ArrayList<Object>();
list.add(first);
list.add(listMap);
map.put(rootName,list);
}
}
}
}
}