map 转换 xml ; xml转map

 1 public class MessageKit {
 2 
 3     public static String map2xml(Map<String, String> map) throws IOException {
 4         Document d = DocumentHelper.createDocument();
 5         Element root = d.addElement("xml");
 6         Set<String> keys = map.keySet();
 7         for(String key:keys) {
 8             root.addElement(key).addText(map.get(key));
 9         }
10         StringWriter sw = new StringWriter();
11         XMLWriter xw = new XMLWriter(sw);
12         xw.setEscapeText(false);
13         xw.write(d);
14         return sw.toString();
15     }
16 }



测试方法:
 1     @Test
 2     public void testMsg() {
 3         try {
 4             Map<String,String> maps = new HashMap<String, String>();
 5             maps.put("123", "abc");
 6             maps.put("bcd", "222");
 7             maps.put("bcd", "<abc>ddd</abc>");
 8             System.out.println(MessageKit.map2xml(maps));
 9         } catch (IOException e) {
10             e.printStackTrace();
11         }
12     }

 

 

 

 

xml格式字符串转map测试

xml格式字符串:spa

<xml><ToUserName><![CDATA[gh_46265bed77c6]]></ToUserName><FromUserName><![CDATA[oUigKxHuNI-QMHKzvyYpw1lCY8VQ]]></FromUserName><CreateTime>1459927356</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[sdf]]></Content><MsgId>6270340248959115708</MsgId></xml>code

 

 1     public static Map<String,String> reqMsg2Map(HttpServletRequest req) throws IOException {
 2         String xml = req2xml(req);
 3         System.out.println(xml);
 4         try {
 5             Map<String,String> maps = new HashMap<String, String>();
 6             Document document = DocumentHelper.parseText(xml);
 7             Element root = document.getRootElement();
 8             List<Element> eles = root.elements();
 9             for(Element e:eles) {
10                 maps.put(e.getName(), e.getTextTrim());
11             }
12             return maps;
13         } catch (DocumentException e) {
14             e.printStackTrace();
15         }
16         return null;
17     }