xml 工具类

来源:互联网 发布:is语音软件下载 编辑:程序博客网 时间:2024/05/29 13:37
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);} elsemap.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);} elsemap.put(iter.getName(), iter.getText());}}} elsemap.put(e.getName(), e.getText());return map;}}

0 0