package com.chb.abc.common.util;
import java.io.StringReader;
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.Element;
import org.dom4j.io.SAXReader;
public class ParseXml {
public static void main(String[] args) throws Exception{
String xml="<?xml version='1.0' encoding='UTF-8'?><RESP_PARAM><PUB_INFO><RETURN_RESULT>0</RETURN_RESULT><RETURN_DESC>成功</RETURN_DESC><OSB_SERIAL_NO>osb-cs01-srv1^14085508470000000001</OSB_SERIAL_NO></PUB_INFO><BUSI_INFO><QRCODE_ID>4415</QRCODE_ID><QRCODE_NAME>DimensionalCode</QRCODE_NAME><QRCODE_IMAGE>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</QRCODE_IMAGE></BUSI_INFO></RESP_PARAM>";
Map retMap=xml2Map(xml);
System.out.println("========");
}
public static Map xml2Map(String xml) throws DocumentException {
SAXReader reader = new SAXReader();
StringReader sr = null;
try{
sr = new StringReader(xml);
Document document = reader.read(sr);
Element root = document.getRootElement();
return dom2Map(root);
}finally {
if(sr != null) {
sr.close();
}
}
}
private 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 instanceof List) {
mapList = (List) obj;
mapList.add(m);
} else {
mapList = new ArrayList();
mapList.add(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 instanceof List) {
mapList = (List) obj;
mapList.add(iter.getText());
} else {
mapList = new ArrayList();
mapList.add(obj);
mapList.add(iter.getText());
}
map.put(iter.getName(), mapList);
} else
map.put(iter.getName(), iter.getText());
}
}
} else
map.put(e.getName(), e.getText());
return map;
}
}
xml 工具类
最新推荐文章于 2024-02-17 11:30:57 发布