123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package com.dashitech.utils;
- import org.dom4j.Document;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import java.util.*;
- /**
- * Created by xuweihua on 2021/3/29.
- */
- public class XmlToMap {
- public static Map<String, Object> Dom2Map(String xmlStr){
- Map<String, Object> map = new HashMap<String, Object>();
- try{
- Document doc= DocumentHelper.parseText(xmlStr);
- if(doc == null)
- return null;
- Element root = doc.getRootElement();
- for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
- Element e = (Element) iterator.next();
- //System.out.println(e.getName());
- List list = e.elements();
- if(list.size() > 0){
- map.put(e.getName(), Dom2Map(e));
- }else
- map.put(e.getName(), e.getText());
- }
- return map;
- }catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- public 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.getClass().getName().equals("java.util.ArrayList")){
- mapList = new ArrayList();
- mapList.add(obj);
- mapList.add(m);
- }
- if(obj.getClass().getName().equals("java.util.ArrayList")){
- mapList = (List) 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.getClass().getName().equals("java.util.ArrayList")){
- mapList = new ArrayList();
- mapList.add(obj);
- mapList.add(iter.getText());
- }
- if(obj.getClass().getName().equals("java.util.ArrayList")){
- mapList = (List) 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;
- }
- }
|