XML字元轉Map工具類別的範例程式碼分享

黄舟
發布: 2017-04-01 13:13:40
原創
2195 人瀏覽過

XML字元轉Map工具類別的範例程式碼分享

import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class XmlUtils { public static Map Str2Map(String str){ try { // long beginTime = System.currentTimeMillis(); Document doc = DocumentHelper.parseText(str); // System.out.println(doc.asXML()); Map map = XmlUtils.Dom2Map(doc); // System.out.println(map.toString()); // System.out.println("Use time:"+(System.currentTimeMillis()-beginTime)); return map; } catch (DocumentException e) { e.printStackTrace(); } return null; } public static Map Dom2Map(Document doc){ Map map = new HashMap(); if(doc == null) return map; Element root = doc.getRootElement(); for (Iterator iterator = root.elementIterator(); iterator.hasNext();) { Element e = (Element) iterator.next(); List list = e.elements(); if(list.size() > 0){ map.put(e.getName(), Dom2Map(e)); }else map.put(e.getName(), e.getText()); } return map; } @SuppressWarnings("unchecked") 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; }
登入後複製

以上是XML字元轉Map工具類別的範例程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!