package com.gszcn.gsrssj.utils; import net.sf.json.JSONObject; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import java.util.*; public class XMLHelper { public static JSONObject toJson(String xml) throws Exception{ Document document = DocumentHelper.parseText(xml); return JSONObject.fromObject(getJSONObject(document.getRootElement())); } private static Map<String, Object> getJSONObject(Element element) { Map<String, Object> root = getMap(); String key = element.getName(); List<Element> list = element.elements(); Object object = ""; if (list != null && list.size() > 0) { List<Map<String, Object>> childrens = new ArrayList<Map<String, Object>>(); for (Element e : list) { List<Element> children = e.elements(); if (children != null && children.size() > 0) { childrens.add(getJSONObject(e)); }else{ Map<String, Object> map = getMap(); map.put(e.getName(), e.getText()); childrens.add(map); } } Map<String, Object> childrenMap = getMap(); for (Map<String, Object> map : childrens) { for (String k : map.keySet()) { if (childrenMap.get(k) != null) { if (childrenMap.get(k) instanceof List) { ((List<Object>)childrenMap.get(k)).add(map.get(k)); }else{ List<Object> e = new ArrayList<Object>(); e.add(childrenMap.get(k)); e.add(map.get(k)); childrenMap.put(k, e); } }else{ childrenMap.putAll(map); } } } object = childrenMap; }else{ object = element.getText(); } root.put(key, object); return root; } private static Map<String, Object> getMap(){ return new TreeMap<String, Object>(new Comparator<String>() { public int compare(String o1, String o2) { return o1.compareTo(o2); } }); } }
xmlHelper
最新推荐文章于 2023-05-09 14:09:06 发布