本文为转载:http://blog.sina.com.cn/s/blog_6145ed810100z164.html  原文地址。

自己仅作备忘录方便查找留了一份。

这是解析Xml 的辅助类

 1 package com.zwr.www.util;
 2 
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.Iterator;
 6 import java.util.List;
 7 import java.util.Map;
 8 
 9 import org.dom4j.Document;
10 import org.dom4j.Element;
11 
12 public class XmlUtil {
13     @SuppressWarnings({ "rawtypes" })
14     public static Map<String, Object> Dom2Map(Document doc) {
15         Map<String, Object> map = new HashMap<String, Object>();
16         if (doc == null)
17             return map;
18         Element root = doc.getRootElement();
19         for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
20             Element e = (Element) iterator.next();
21             List list = e.elements();
22             if (list.size() > 0) {
23                 map.put(e.getName(), Dom2Map(e));
24             } else
25                 map.put(e.getName(), e.getText());
26         }
27         return map;
28     }
29 
30     @SuppressWarnings({ "unchecked", "rawtypes" })
31     public static Map Dom2Map(Element e) {
32         Map map = new HashMap();
33         List list = e.elements();
34         if (list.size() > 0) {
35             for (int i = 0; i < list.size(); i++) {
36                 Element iter = (Element) list.get(i);
37                 List mapList = new ArrayList();
38 
39                 if (iter.elements().size() > 0) {
40                     Map m = Dom2Map(iter);
41                     if (map.get(iter.getName()) != null) {
42                         Object obj = map.get(iter.getName());
43                         if (!obj.getClass().getName()
44                                 .equals("java.util.ArrayList")) {
45                             mapList = new ArrayList();
46                             mapList.add(obj);
47                             mapList.add(m);
48                         }
49                         if (obj.getClass().getName()
50                                 .equals("java.util.ArrayList")) {
51                             mapList = (List) obj;
52                             mapList.add(m);
53                         }
54                         map.put(iter.getName(), mapList);
55                     } else
56                         map.put(iter.getName(), m);
57                 } else {
58                     if (map.get(iter.getName()) != null) {
59                         Object obj = map.get(iter.getName());
60                         if (!obj.getClass().getName()
61                                 .equals("java.util.ArrayList")) {
62                             mapList = new ArrayList();
63                             mapList.add(obj);
64                             mapList.add(iter.getText());
65                         }
66                         if (obj.getClass().getName()
67                                 .equals("java.util.ArrayList")) {
68                             mapList = (List) obj;
69                             mapList.add(iter.getText());
70                         }
71                         map.put(iter.getName(), mapList);
72                     } else
73                         map.put(iter.getName(), iter.getText());
74                 }
75             }
76         } else
77             map.put(e.getName(), e.getText());
78         return map;
79     }
80 }
View Code

相关文章: