将xml字符串转换成map,list 的转换

public static Map transXmlStringToMap(String xml) {
Map map = new HashMap();
Document doc = null;
try {

doc = DocumentHelper.parseText(xml); // 将字符串转为XML


Element rootElt = doc.getRootElement(); // 获取根节点


System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称


Iterator iter = rootElt.elementIterator(); // 获取根节点下的子节点


// 遍历根节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String elementName = recordEle.getName();
String elementValue = recordEle.getTextTrim();


System.out.println(elementName + "=" + elementValue);
map.put(elementName, elementValue);
}


} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return map;

}

    /**

* @description 将xml字符串数据转换成list
* @param xml
* @return Map
*/
public static List transXmlStringToList(String xml) {
Document doc = null;
List ckxxList = new ArrayList();
try {
//注意xml串中可能存在一些非法的字符串,需要转化
doc = DocumentHelper.parseText(xml.replaceAll(" < ", "&lt;")
.replaceAll(" ≤ ", "&lt;=")); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
Iterator iter1 = rootElt.elementIterator(); // 获取根节点下的子节点
// 遍历根节点
while (iter1.hasNext()) {
Element recordEle = (Element) iter1.next();
Iterator iter2 =recordEle.elementIterator();
String elementName = recordEle.getName();
Map map = new HashMap();
List ckdataList = new ArrayList();
while(iter2.hasNext()){
Element recordEle2 = (Element) iter2.next();
if(!"CKDATA".equalsIgnoreCase(recordEle2.getName())){
map.put(recordEle2.getName(), recordEle2.getTextTrim());
}
if("CKDATA".equalsIgnoreCase(recordEle2.getName())){
Map ckdataMap = new HashMap();
Iterator iter3 =recordEle2.elementIterator();
while(iter3.hasNext()){
Element recordEle3 = (Element)iter3.next();
ckdataMap.put(recordEle3.getName(), recordEle3.getTextTrim());
}
ckdataList.add(ckdataMap);

map.put(recordEle2.getName(), ckdataList);
}
}
ckxxList.add(map);

}

} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return ckxxList;
}

猜你喜欢

转载自blog.csdn.net/mrf_w/article/details/77163360