XML字符转Map工具类的示例代码分享

互联网 17-4-1
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<String, Object> Str2Map(String str){          try {  //            long beginTime = System.currentTimeMillis();              Document doc = DocumentHelper.parseText(str);  //            System.out.println(doc.asXML());              Map<String, Object> 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<String, Object> Dom2Map(Document doc){           Map<String, Object> map = new HashMap<String, Object>();           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工具类的示例代码分享的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:解析XML文件的几种方式对比的详细介绍

相关资讯