JAVA利用dom4j解析xml转map

dom4j maven依赖

 
    
      dom4j
      dom4j
      1.6.1
    

xml转换为map的方法源码

    /**
     *
     * @param xml 要转换的xml字符串
     * @param charset 字符编码
     * @return  转换成map后返回结果
     * @throws UnsupportedEncodingException
     * @throws DocumentException
     */
    public static Map xmlToMap(String xml, String charset) throws UnsupportedEncodingException, DocumentException{

        Map respMap = new HashMap();

        SAXReader reader = new SAXReader();
        Document doc = reader.read(new ByteArrayInputStream(xml.getBytes(charset)));
        Element root = doc.getRootElement();
        xmlToMap(root, respMap);
        return respMap;
    }

    public static Map xmlToMap(Element tmpElement, Map respMap){
        ArrayList strings = new ArrayList();
        for (String s:strings
             ) {
            
        }
        if (tmpElement.isTextOnly()) {
            respMap.put(tmpElement.getName(), tmpElement.getText());
            return respMap;
        }

        @SuppressWarnings("unchecked")
        Iterator eItor = tmpElement.elementIterator();
        while (eItor.hasNext()) {
            Element element = eItor.next();
            xmlToMap(element, respMap);
        }
        return respMap;
    }

注意导包不要搞错

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

测试数据



George
John
Reminder
Don't forget the meeting!

测试之后得出的map调用toString并打印输出,得到的结果

{to=George, body=Don't forget the meeting!, from=John, heading=Reminder}

 

你可能感兴趣的:(JAVA利用dom4j解析xml转map)