1. import java.io.ByteArrayOutputStream;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.TreeMap;
  8. import net.sf.json.JSON;
  9. import net.sf.json.JSONSerializer;
  10. import net.sf.json.xml.XMLSerializer;
  11. import org.dom4j.Document;
  12. import org.dom4j.DocumentException;
  13. import org.dom4j.DocumentHelper;
  14. import org.dom4j.Element;
  15. import org.dom4j.io.OutputFormat;
  16. import org.dom4j.io.XMLWriter;
  17.  
  18. /**
  19. * common xml conver utility
  20. *
  21. * @author viruscodecn@gmail.com
  22. * @version Framework 2010.10.26
  23. * @url http://blog.csdn.net/arjick/article/details/6251777
  24. */
  25. public class XmlConverUtil {
  26. /**
  27. * map to xml xml <node><key label="key1">value1</key><key
  28. * label="key2">value2</key>......</node>
  29. *
  30. * @param map
  31. * @return
  32. */
  33. public static String maptoXml(Map map) {
  34. Document document = DocumentHelper.createDocument();
  35. Element nodeElement = document.addElement("node");
  36. for (Object obj : map.keySet()) {
  37. Element keyElement = nodeElement.addElement("key");
  38. keyElement.addAttribute("label", String.valueOf(obj));
  39. keyElement.setText(String.valueOf(map.get(obj)));
  40. }
  41. return doc2String(document);
  42. }
  43.  
  44. /**
  45. * list to xml xml <nodes><node><key label="key1">value1</key><key
  46. * label="key2">value2</key>......</node><node><key
  47. * label="key1">value1</key><key
  48. * label="key2">value2</key>......</node></nodes>
  49. *
  50. * @param list
  51. * @return
  52. */
  53. public static String listtoXml(List list) throws Exception {
  54. Document document = DocumentHelper.createDocument();
  55. Element nodesElement = document.addElement("nodes");
  56. int i = 0;
  57. for (Object o : list) {
  58. Element nodeElement = nodesElement.addElement("node");
  59. if (o instanceof Map) {
  60. for (Object obj : ((Map) o).keySet()) {
  61. Element keyElement = nodeElement.addElement("key");
  62. keyElement.addAttribute("label", String.valueOf(obj));
  63. keyElement.setText(String.valueOf(((Map) o).get(obj)));
  64. }
  65. } else {
  66. Element keyElement = nodeElement.addElement("key");
  67. keyElement.addAttribute("label", String.valueOf(i));
  68. keyElement.setText(String.valueOf(o));
  69. }
  70. i++;
  71. }
  72. return doc2String(document);
  73. }
  74.  
  75. /**
  76. * json to xml {"node":{"key":{"@label":"key1","#text":"value1"}}} conver
  77. * <o><node class="object"><key class="object"
  78. * label="key1">value1</key></node></o>
  79. *
  80. * @param json
  81. * @return
  82. */
  83. public static String jsontoXml(String json) {
  84. try {
  85. XMLSerializer serializer = new XMLSerializer();
  86. JSON jsonObject = JSONSerializer.toJSON(json);
  87. return serializer.write(jsonObject);
  88. } catch (Exception e) {
  89. e.printStackTrace();
  90. }
  91. return null;
  92. }
  93.  
  94. /**
  95. * xml to map xml <node><key label="key1">value1</key><key
  96. * label="key2">value2</key>......</node>
  97. *
  98. * @param xml
  99. * @return
  100. */
  101. public static Map xmltoMap(String xml) {
  102. try {
  103. Map map = new HashMap();
  104. Document document = DocumentHelper.parseText(xml);
  105. Element nodeElement = document.getRootElement();
  106. List node = nodeElement.elements();
  107. for (Iterator it = node.iterator(); it.hasNext();) {
  108. Element elm = (Element) it.next();
  109. System.out.println(elm.toString());
  110. map.put(elm.getName(), elm.getText());
  111. elm = null;
  112. }
  113. node = null;
  114. nodeElement = null;
  115. document = null;
  116. return map;
  117. } catch (Exception e) {
  118. e.printStackTrace();
  119. }
  120. return null;
  121. }
  122.  
  123. /**
  124. * xml to map xml <node><key label="key1">value1</key><key
  125. * label="key2">value2</key>......</node>
  126. * @param xml
  127. * @param sortBoolean 是否排序
  128. * @作者 廖正瀚
  129. * @return
  130. * @throws Exception
  131. */
  132. public static Map<String,String> xmlToMap(String xml, boolean sortBoolean) throws Exception {
  133. Map<String, String> map;
  134. if (sortBoolean) {
  135. map = new TreeMap<String, String>();
  136. } else {
  137. map = new HashMap<String, String>();
  138. }
  139. Document document = DocumentHelper.parseText(xml);
  140. Element nodeElement = document.getRootElement();
  141. @SuppressWarnings("rawtypes")
  142. Iterator it = nodeElement.elements().iterator();
  143. while ( it.hasNext()) {
  144. Element elm = (Element) it.next();
  145. System.out.println(elm.toString());
  146. map.put(elm.getName(), elm.getText());
  147. elm = null;
  148. }
  149. return map;
  150. }
  151.  
  152. /**
  153. * xml to list xml <nodes><node><key label="key1">value1</key><key
  154. * label="key2">value2</key>......</node><node><key
  155. * label="key1">value1</key><key
  156. * label="key2">value2</key>......</node></nodes>
  157. *
  158. * @param xml
  159. * @return
  160. */
  161. public static List xmltoList(String xml) {
  162. try {
  163. List<Map> list = new ArrayList<Map>();
  164. Document document = DocumentHelper.parseText(xml);
  165. Element nodesElement = document.getRootElement();
  166. List nodes = nodesElement.elements();
  167. for (Iterator its = nodes.iterator(); its.hasNext();) {
  168. Element nodeElement = (Element) its.next();
  169. Map map = xmltoMap(nodeElement.asXML());
  170. list.add(map);
  171. map = null;
  172. }
  173. nodes = null;
  174. nodesElement = null;
  175. document = null;
  176. return list;
  177. } catch (Exception e) {
  178. e.printStackTrace();
  179. }
  180. return null;
  181. }
  182.  
  183. /**
  184. * xml to json <node><key label="key1">value1</key></node> 转化为
  185. * {"key":{"@label":"key1","#text":"value1"}}
  186. *
  187. * @param xml
  188. * @return
  189. */
  190. public static String xmltoJson(String xml) {
  191. XMLSerializer xmlSerializer = new XMLSerializer();
  192. return xmlSerializer.read(xml).toString();
  193. }
  194.  
  195. /**
  196. *
  197. * @param document
  198. * @return
  199. */
  200. public static String doc2String(Document document) {
  201. String s = "";
  202. try {
  203. // 使用输出流来进行转化
  204. ByteArrayOutputStream out = new ByteArrayOutputStream();
  205. // 使用UTF-8编码
  206. OutputFormat format = new OutputFormat(" ", true, "UTF-8");
  207. XMLWriter writer = new XMLWriter(out, format);
  208. writer.write(document);
  209. s = out.toString("UTF-8");
  210. } catch (Exception ex) {
  211. ex.printStackTrace();
  212. }
  213. return s;
  214. }
  215. }

Java xml和map,list格式的转换-摘抄的更多相关文章

  1. XML转换为Map通用算法实现 Java版本(Stax实现)

    目前项目中需要将XML转换为Map,下面给出了自己的代码实现. 后续将为大家提供Dom版本的实现. 请各路大神给予各种优良实现. 场景: 在项目中需要解析XML文本字符串,需要将XML文本字符串映射为 ...

  2. java中 json和bean list map之间的互相转换总结

    JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib]   在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...

  3. JAVA,NET RSA密钥格式转换

    JAVA和NET RSA密钥格式相互转换(公钥,私钥) 做了一个小项目遇到java和.net非对称加密问题,java的公钥和私钥就直接是一个字符串的形式展示的,但是.net是以xml简单包裹形式展示的 ...

  4. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

  5. Java的xml与map,与Bean互转

    xml与map互转,主要使用dom4j import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j. ...

  6. 字符串对象跟xml格式的转换

    package com.sunshen.jfids.testWebService.task; import java.io.File; import java.io.StringWriter; imp ...

  7. map 转换 xml ; xml转map

    public class MessageKit { public static String map2xml(Map<String, String> map) throws IOExcep ...

  8. 分享非常有用的Java程序 (关键代码)(五)---把 Array 转换成 Map

    原文:分享非常有用的Java程序 (关键代码)(五)---把 Array 转换成 Map import java.util.Map; import org.apache.commons.lang.Ar ...

  9. java json与map互相转换(二)

      java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...

随机推荐

  1. Oracle的查询-多表查询中的一些概念

    --笛卡尔积 select * from emp e,dept d; --等值连接 select * from emp e,dept d where e.deptno=d.deptno --内连接 s ...

  2. SQLite进阶-14.子查询

    目录 子查询 SELECT语句中的子查询 INSERT语句中的子查询 UPDATE语句中的子查询 DELETE语句中的子查询 子查询 子查询或内部查询或嵌套查询是在另一个SQLite查询内嵌入在WHE ...

  3. MySQL中的InnoDB中产生的死锁深究

    查考地址:https://blog.csdn.net/loophome/article/details/79867174 待研究中.....

  4. 【AtCoder】M-SOLUTIONS Programming Contest

    M-SOLUTIONS Programming Contest A - Sum of Interior Angles #include <bits/stdc++.h> #define fi ...

  5. Reactor 线程模型以及在netty中的应用

    这里我们需要理解的一点是Reactor线程模型是基于同步非阻塞IO实现的.对于异步非阻塞IO的实现是Proactor模型. 一 Reactor 单线程模型 Reactor单线程模型就是指所有的IO操作 ...

  6. Java 抽象类详解

    在<Java中的抽象方法和接口>中,介绍了抽象方法与接口,以及做了简单的比较. 这里我想详细探讨下抽象类. 一.抽象类的定义 被关键字“abstract”修饰的类,为抽象类.(而且,abx ...

  7. linux实现一个定时任务

    设置定时任务删除logs脚本数据 编写脚本   touch cleanLogs.sh #! /bin/sh -name "*.log*" -exec rm -f {} \; 使用r ...

  8. 我的第一个python web开发框架(2)——第一个Hello World

    小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...

  9. django websocket 实现后台日志在web端展示(+前端vue设置)

    核心代码: @accept_websocket def get_log(req): if req.is_websocket(): print('收到websocket请求') with open(se ...

  10. request.getScheme() 使用方法(转)

    今天在看代码时,发现程序使用了 request.getScheme() .不明白是什么意思,查了一下.结果整理如下: 1.request.getScheme() 返回当前链接使用的协议:一般应用返回h ...