前言【

  最近在写一个业务,由于调UPS物流的接口返回的是一个xml格式的数据结果,我现在要拿到xml中某个节点的值,而这个xml数据是多节点多层级的,并且这某个节点的值有可能只有一条值,有可能有多条,如下:

  大概是这样的结构:为了简要,我做简单显示,真正的结构层级跟这差不多

  1. <class>
  2. <student>
  3. <name>aaaaaa</name>
  4. <girlfriend>bbb</girlfriend>
  5. <girlfriend>ccc</girlfriend>
  6. </student>
  7. </class>
  8.  
  9. >>>>由于girlfriend的值是不确定的,有可能一个,或多个>>>>
  1. <class>
  2. <student>
  3. <name>aaaaaa</name>
  4. <girlfriend>bbb</girlfriend>
  5. </student>
  6. </class>
  1.  
  2. //现在要把当前xml转成map,并且还要遍历map,拿到girlfriend的值,于girlfriend的值有可能是多个
    //所以当xml中的节点girlfriend的值不同时,我们都要解析成多层级的map,并拿到girlfriend的值

 】  

 

网上百度了很久,终于找到一位大神写的一个xml转map的工具,并且还附带从map中查找某层级的子节点数据,借鉴博客:https://blog.csdn.net/lmb55/article/details/77507385

我在他的方法上做了一些小改动,因为我要根据classs>student>girlfriend拿到一个这样{girlfriend=[bbb, ccc]},或{girlfriend=[bbb]},所以不管一个值还是多个值我都要放到map中的list中,但他的map取list数据方法只能取一到一个list值如[bbb, ccc]

好了,来解析一下:

  第一步:把xml转map方法:

  1. /**
  2. * 将Element对象转为Map(String→Document→Element→Map)
  3. * @param Element
  4. * @return
  5. */
  6. @SuppressWarnings({ "unchecked", "rawtypes" })
  7. public static Map Dom2Map(Element e){
  8. Map map = new HashMap();
  9. List list = e.elements();
  10. if(list.size() > 0){
  11. for (int i = 0;i < list.size(); i++) {
  12. Element iter = (Element) list.get(i);
  13. List mapList = new ArrayList();
  14. if(iter.elements().size() > 0){
  15. Map m = Dom2Map(iter);
  16. if(map.get(iter.getName()) != null){
  17. Object obj = map.get(iter.getName());
  18. if(!obj.getClass().getName().equals("java.util.ArrayList")){
  19. mapList = new ArrayList();
  20. mapList.add(obj);
  21. mapList.add(m);
  22. }
  23. if(obj.getClass().getName().equals("java.util.ArrayList")){
  24. mapList = (List) obj;
  25. mapList.add(m);
  26. }
  27. map.put(iter.getName(), mapList);
  28. }else
  29. map.put(iter.getName(), m);
  30. }
  31. else{
  32. if(map.get(iter.getName()) != null){
  33. Object obj = map.get(iter.getName());
  34. if(!obj.getClass().getName().equals("java.util.ArrayList")){
  35. mapList = new ArrayList();
  36. mapList.add(obj);
  37. mapList.add(iter.getText());
  38. }
  39. if(obj.getClass().getName().equals("java.util.ArrayList")){
  40. mapList = (List) obj;
  41. mapList.add(iter.getText());
  42. }
  43. map.put(iter.getName(), mapList);
  44. }else
  45. map.put(iter.getName(), iter.getText());//公共map resultCode=0
  46. }
  47. }
  48. }else
  49. map.put(e.getName(), e.getText());
  50. return map;
  51. }
  52.  
  53. //调用上面的xml转map方法:

//xml转map
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new ByteArrayInputStream(respXml.getBytes()));
Element incomingForm = document.getRootElement();
Map map = Dom2Map(incomingForm);
System.out.println("map >>> "+ map);

/*
* {resultMsg=成功, orderOffer={offer={offerSpecName=980010992)商务助手(OCS)30元, endDt=3000-1-1 0:00:00, startDt=2012-11-27 16:48:12, offerSpecId=980010992, params={param=[{offerParamId=101000048281, itemSpecName=计费区分, itemSpecId=5030, value=CDMA预付费}, {offerParamId=101000048282, itemSpecName=经分区分, itemSpecId=5031, value=天翼商话}]}, offerId=105000808918}}, resultCode=0, saleOffer={categoryNode={offer=[{summary=待定..., id=980001995, name=(980001995)商务助手(OCS)201209版-30元}, {summary=待定..., id=980001996, name=(980001996)商务助手(OCS)201209版-50元}, {summary=待定..., id=980001997, name=(980001997)商务助手(OCS)201209版-80元}, {summary=待定..., id=980010993, name=(980010993)商务助手(OCS)50元}]}}}
*/

  1.  

  第二步:xml已经转成map数据结构了,下面要根据节点的层级路径,拿到你想要的节点值

  1. /**
  2. * 将多结点多层级的Map转为多包体的list集合
  3. * @param respStr
  4. * @param listNode
  5. * @return
  6. */
  7. @SuppressWarnings("unchecked")
  8. public static Map<String, List<String>> map2ListbyHandler(Map respStr,String listNode){
  9. List<String> resultList = new ArrayList<String>();
  10.  
  11. Map<String, List<String>> resultMap = new HashMap<>();
  12.  
  13. Map map = respStr;
  14. String[] strArray = listNode.split(">");
  15. String key = null;
  16. Object value = null;
  17. for (int i = 0; i < strArray.length; i++) {
  18. if (map.get(strArray[i]) instanceof List) {
  19. if (i < strArray.length && null != map.get(strArray[i]) && "" != map.get(strArray[i])) {
  20. Map<String,Object> mapList = map;
  21. if (((List<Map<String,Object>>)mapList.get(strArray[i])).size() > 0) {
  22.  
  23. // Map mapj = new HashMap();
  24.  
  25. // List<Map<String,Object>> list = ((List<Map<String,Object>>)mapList.get(strArray[i]));
  26.  
  27. resultList = ((List<String>)mapList.get(strArray[i]));
  28. if(resultList.size() > 0){
  29. resultMap.put(strArray[i], resultList);
  30. }
  31. return resultMap;
  32. }
  33. }
  34. break;
  35. }else{
  36. if (i < strArray.length - 1 && null != map.get(strArray[i]) && "" != map.get(strArray[i])) {
  37. map = (Map) map.get(strArray[i]);
  38. }else{
  39. //说明没有此节点只有一个值,直接从map里把值取出放resultList中
  40. resultList.add(map.get(strArray[i]).toString());
  41. resultMap.put(strArray[i], resultList);//listNode
  42. }
  43. }
  44. }
  45. return resultMap;
  46. }
  1. //调用上面的遍历map取数据方法:原博客返回的是一个list,我给改成了map,因为我想要{girlfriend=[bbb, ccc]},或{girlfriend={bbb}}这种结果数据,方便我根据节点名称取值
  2. System.out.println("***************从map中将单个节点的值查找出来*********************");
  3. //map转list
  4. Map resultMap = XmlToMapUtil01.map2ListbyHandler(map,"student>age");
  5. System.out.println(resultMap.toString());
  1.  

》》》》》》》》》》》》》》》》》》》》》》》》》》》》

好了,下面放上全部代码,一个XmlToMapUtil01.java工具类代码,和一个TestXmlToMap01.java用来测试工具类的文件

XmlToMapUtil01.java工具类

  1. package com.saoptest.test03;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.Iterator;
  7. import java.util.List;
  8. import java.util.Map;
  9.  
  10. import org.dom4j.Document;
  11. import org.dom4j.DocumentException;
  12. import org.dom4j.Element;
  13. import org.dom4j.io.SAXReader;
  14.  
  15. public class XmlToMapUtil01 {
  16.  
  17. /**
  18. * 将Document对象转为Map(String→Document→Map)
  19. * @param Document
  20. * @return
  21. */
  22. @SuppressWarnings("rawtypes")
  23. public static Map<String, Object> Dom2Map(Document doc){
  24. Map<String, Object> map = new HashMap<String, Object>();
  25. if(doc == null)
  26. return map;
  27. Element root = doc.getRootElement();
  28. for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
  29. Element e = (Element) iterator.next();
  30. //System.out.println(e.getName());
  31. List list = e.elements();
  32. if(list.size() > 0){
  33. map.put(e.getName(), Dom2Map(e));
  34. }else
  35. map.put(e.getName(), e.getText());
  36. }
  37. return map;
  38. }
  39.  
  40. /**
  41. * 将Element对象转为Map(String→Document→Element→Map)
  42. * @param Element
  43. * @return
  44. */
  45. @SuppressWarnings({ "unchecked", "rawtypes" })
  46. public static Map Dom2Map(Element e){
  47. Map map = new HashMap();
  48. List list = e.elements();
  49. if(list.size() > 0){
  50. for (int i = 0;i < list.size(); i++) {
  51. Element iter = (Element) list.get(i);
  52. List mapList = new ArrayList();
  53. if(iter.elements().size() > 0){
  54. Map m = Dom2Map(iter);
  55. if(map.get(iter.getName()) != null){
  56. Object obj = map.get(iter.getName());
  57. if(!obj.getClass().getName().equals("java.util.ArrayList")){
  58. mapList = new ArrayList();
  59. mapList.add(obj);
  60. mapList.add(m);
  61. }
  62. if(obj.getClass().getName().equals("java.util.ArrayList")){
  63. mapList = (List) obj;
  64. mapList.add(m);
  65. }
  66. map.put(iter.getName(), mapList);
  67. }else
  68. map.put(iter.getName(), m);
  69. }
  70. else{
  71. if(map.get(iter.getName()) != null){
  72. Object obj = map.get(iter.getName());
  73. if(!obj.getClass().getName().equals("java.util.ArrayList")){
  74. mapList = new ArrayList();
  75. mapList.add(obj);
  76. mapList.add(iter.getText());
  77. }
  78. if(obj.getClass().getName().equals("java.util.ArrayList")){
  79. mapList = (List) obj;
  80. mapList.add(iter.getText());
  81. }
  82. map.put(iter.getName(), mapList);
  83. }else
  84. map.put(iter.getName(), iter.getText());//公共map resultCode=0
  85. }
  86. }
  87. }else
  88. map.put(e.getName(), e.getText());
  89. return map;
  90. }
  91.  
  92. //=========================上面是单节点多层级的xml转map====================================
  93.  
  94. //=========================下面是多节点多层级的xml转map====================================
  95.  
  96. /**
  97. * 将多结点多层级的Map转为多包体的list集合
  98. * @param respStr
  99. * @param listNode
  100. * @return
  101. */
  102. @SuppressWarnings("unchecked")
  103. public static Map<String, List<String>> map2ListbyHandler(Map respStr,String listNode){
  104. List<String> resultList = new ArrayList<String>();
  105.  
  106. Map<String, List<String>> resultMap = new HashMap<>();
  107.  
  108. Map map = respStr;
  109. String[] strArray = listNode.split(">");
  110. String key = null;
  111. Object value = null;
  112. for (int i = 0; i < strArray.length; i++) {
  113. if (map.get(strArray[i]) instanceof List) {
  114. if (i < strArray.length && null != map.get(strArray[i]) && "" != map.get(strArray[i])) {
  115. Map<String,Object> mapList = map;
  116. if (((List<Map<String,Object>>)mapList.get(strArray[i])).size() > 0) {
  117.  
  118. // Map mapj = new HashMap();
  119.  
  120. // List<Map<String,Object>> list = ((List<Map<String,Object>>)mapList.get(strArray[i]));
  121.  
  122. resultList = ((List<String>)mapList.get(strArray[i]));
  123. if(resultList.size() > 0){
  124. resultMap.put(strArray[i], resultList);
  125. }
  126. return resultMap;
  127. }
  128. }
  129. break;
  130. }else{
  131. if (i < strArray.length - 1 && null != map.get(strArray[i]) && "" != map.get(strArray[i])) {
  132. map = (Map) map.get(strArray[i]);
  133. }else{
  134. //说明没有此节点只有一个值,直接从map里把值取出放resultList中
  135. resultList.add(map.get(strArray[i]).toString());
  136. resultMap.put(strArray[i], resultList);//listNode
  137. }
  138. }
  139. }
  140. return resultMap;
  141. }
  142.  
  143. //===============map测试==========================
  144.  
  145. public static void main(String[] args) {
  146. StringBuffer sb = new StringBuffer();
  147. sb.append("<response>");
  148. sb.append(" <resultCode>0</resultCode>");
  149. sb.append(" <resultMsg>成功</resultMsg>");
  150. sb.append(" <orderOffer>");
  151. sb.append(" <offer>");
  152. sb.append(" <offerId>105000808918</offerId>");
  153. sb.append(" <offerSpecId>980010992</offerSpecId>");
  154. sb.append(" <offerSpecName>980010992)商务助手(OCS)30元</offerSpecName>");
  155. sb.append(" <startDt>2012-11-27 16:48:12</startDt>");
  156. sb.append(" <endDt>3000-1-1 0:00:00</endDt>");
  157. sb.append(" <params>");
  158. sb.append(" <param>");
  159. sb.append(" <offerParamId>101000048281</offerParamId>");
  160. sb.append(" <itemSpecId>5030</itemSpecId>");
  161. sb.append(" <itemSpecName>计费区分</itemSpecName>");
  162. sb.append(" <value>CDMA预付费</value>");
  163. sb.append(" </param>");
  164. sb.append(" <param>");
  165. sb.append(" <offerParamId>101000048282</offerParamId>");
  166. sb.append(" <itemSpecId>5031</itemSpecId>");
  167. sb.append(" <itemSpecName>经分区分</itemSpecName>");
  168. sb.append(" <value>天翼商话</value>");
  169. sb.append(" </param>");
  170. sb.append(" </params>");
  171. sb.append(" </offer>");
  172. sb.append(" </orderOffer>");
  173. sb.append(" <saleOffer>");
  174. sb.append(" <categoryNode id = \"100472\">");
  175. sb.append(" <offer>");
  176. sb.append(" <id>980001995</id>");
  177. sb.append(" <name>(980001995)商务助手(OCS)201209版-30元</name>");
  178. sb.append(" <summary>待定...</summary>");
  179. sb.append(" </offer>");
  180. sb.append(" <offer>");
  181. sb.append(" <id>980001996</id>");
  182. sb.append(" <name>(980001996)商务助手(OCS)201209版-50元</name>");
  183. sb.append(" <summary>待定...</summary>");
  184. sb.append(" </offer>");
  185. sb.append(" <offer>");
  186. sb.append(" <id>980001997</id>");
  187. sb.append(" <name>(980001997)商务助手(OCS)201209版-80元</name>");
  188. sb.append(" <summary>待定...</summary>");
  189. sb.append(" </offer>");
  190. sb.append(" <offer>");
  191. sb.append(" <id>980010993</id>");
  192. sb.append(" <name>(980010993)商务助手(OCS)50元</name>");
  193. sb.append(" <summary>待定...</summary>");
  194. sb.append(" </offer>");
  195. sb.append(" </categoryNode>");
  196. sb.append(" </saleOffer>");
  197. sb.append("</response>");
  198. String respXml = sb.toString();
  199. try {
  200. //xml转map
  201. SAXReader saxReader = new SAXReader();
  202. Document document = saxReader.read(new ByteArrayInputStream(respXml.getBytes()));
  203. Element incomingForm = document.getRootElement();
  204. Map map = Dom2Map(incomingForm);
  205. System.out.println("map >>> "+ map);
  206. /*
  207. * {resultMsg=成功, orderOffer={offer={offerSpecName=980010992)商务助手(OCS)30元, endDt=3000-1-1 0:00:00, startDt=2012-11-27 16:48:12, offerSpecId=980010992, params={param=[{offerParamId=101000048281, itemSpecName=计费区分, itemSpecId=5030, value=CDMA预付费}, {offerParamId=101000048282, itemSpecName=经分区分, itemSpecId=5031, value=天翼商话}]}, offerId=105000808918}}, resultCode=0, saleOffer={categoryNode={offer=[{summary=待定..., id=980001995, name=(980001995)商务助手(OCS)201209版-30元}, {summary=待定..., id=980001996, name=(980001996)商务助手(OCS)201209版-50元}, {summary=待定..., id=980001997, name=(980001997)商务助手(OCS)201209版-80元}, {summary=待定..., id=980010993, name=(980010993)商务助手(OCS)50元}]}}}
  208. */
  209. System.out.println("***************从map中将单个节点的值查找出来*********************");
  210. //map转list
  211. map2ListbyHandler(map,"saleOffer>categoryNode>offer>id");
  212. /*
  213. * resultList >>> [{id=980001995}, {id=980001996}, {id=980001997}, {id=980010993}]
  214. */
  215. System.out.println("***************从map中将节点集合中的所有节点值都查找出来*******************************");
  216. List<String> nodeList = new ArrayList<String>();
  217. nodeList.add("resultCode");
  218. nodeList.add("resultMsg");
  219. nodeList.add("orderOffer>offer>offerSpecName");
  220. nodeList.add("orderOffer>offer>endDt");
  221. nodeList.add("orderOffer>offer>startDt");
  222. nodeList.add("orderOffer>offer>offerSpecId");
  223. nodeList.add("orderOffer>offer>offerId");
  224. nodeList.add("orderOffer>offer>params>param>offerParamId");
  225. nodeList.add("orderOffer>offer>params>param>itemSpecName");
  226. nodeList.add("orderOffer>offer>params>param>itemSpecId");
  227. nodeList.add("orderOffer>offer>params>param>value");
  228. nodeList.add("saleOffer>categoryNode>offer>id");
  229. nodeList.add("saleOffer>categoryNode>offer>summary");
  230. nodeList.add("saleOffer>categoryNode>offer>name");
  231. // str2ListbyHandler(nodeList,respXml);
  232. /**
  233. * [{offerParamId=101000048281, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980001995, resultMsg=成功,
  234. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  235. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918},
  236. * {offerParamId=101000048282, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980001995, resultMsg=成功,
  237. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  238. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918},
  239. * {offerParamId=101000048281, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980001996, resultMsg=成功,
  240. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  241. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918},
  242. * {offerParamId=101000048282, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980001996, resultMsg=成功,
  243. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  244. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918},
  245. * {offerParamId=101000048281, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980001997, resultMsg=成功,
  246. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  247. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918},
  248. * {offerParamId=101000048282, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980001997, resultMsg=成功,
  249. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  250. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918},
  251. * {offerParamId=101000048281, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980010993, resultMsg=成功,
  252. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  253. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918},
  254. * {offerParamId=101000048282, summary=待定..., endDt=3000-1-1 0:00:00, itemSpecId=5031, id=980010993, resultMsg=成功,
  255. * itemSpecName=经分区分, offerSpecName=980010992)商务助手(OCS)30元, offerSpecId=980010992, startDt=2012-11-27 16:48:12,
  256. * name=(980010993)商务助手(OCS)50元, resultCode=0, value=天翼商话, offerId=105000808918}]
  257. */
  258. } catch (DocumentException e) {
  259. e.printStackTrace();
  260. }
  261. }
  262.  
  263. }

TestXmlToMap01.java

  1. package com.saoptest.test03;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import java.util.List;
  5. import java.util.Map;
  6.  
  7. import org.dom4j.Document;
  8. import org.dom4j.Element;
  9. import org.dom4j.io.SAXReader;
  10.  
  11. public class TestXmlToMap01 {
  12.  
  13. public static void main(String[] args) throws Exception {
  14. //xml转json
  15. String xml = "<class><student><name>aaaaaa</name><girlfriend>bbb</girlfriend><girlfriend>ccc</girlfriend></student></class>";
  16. // String xml = "<class><student><name>aaaaaa</name><girlfriend>bbb</girlfriend></student></class>";
  17. // String xml = "<class><student><name>aaaaaa</name><age>21</age></student><student><name>bbbbbb</name><age>22</age></student></class>";
  18. // String xml = "<class><student><name>aaaaaa</name><age>21</age></student></class>";
  19.  
  20. //xml转map
  21. SAXReader saxReader = new SAXReader();
  22. Document document = saxReader.read(new ByteArrayInputStream(xml.getBytes()));
  23. Element incomingForm = document.getRootElement();
  24. Map map = XmlToMapUtil01.Dom2Map(incomingForm);
  25. System.out.println("map >>> "+ map);
  26. /*
  27. * {resultMsg=成功, orderOffer={offer={offerSpecName=980010992)商务助手(OCS)30元, endDt=3000-1-1 0:00:00, startDt=2012-11-27 16:48:12, offerSpecId=980010992, params={param=[{offerParamId=101000048281, itemSpecName=计费区分, itemSpecId=5030, value=CDMA预付费}, {offerParamId=101000048282, itemSpecName=经分区分, itemSpecId=5031, value=天翼商话}]}, offerId=105000808918}}, resultCode=0, saleOffer={categoryNode={offer=[{summary=待定..., id=980001995, name=(980001995)商务助手(OCS)201209版-30元}, {summary=待定..., id=980001996, name=(980001996)商务助手(OCS)201209版-50元}, {summary=待定..., id=980001997, name=(980001997)商务助手(OCS)201209版-80元}, {summary=待定..., id=980010993, name=(980010993)商务助手(OCS)50元}]}}}
  28. */
  29. System.out.println("***************从map中将单个节点的值查找出来*********************");
  30. //map转list
  31. Map<String, List<String>> resultMap = XmlToMapUtil01.map2ListbyHandler(map,"student>girlfriend");
  32. List<String> list = resultMap.get("girlfriend");
  33.  
  34. System.out.println("resultMap=" + resultMap.toString());
  35.  
  36. if(!"null".equals(resultMap.get("girlfriend").toString())){
  37. System.out.println("有数据:" + resultMap.get("girlfriend"));
  38. }else{
  39. System.out.println("没数据:" + resultMap.get("girlfriend"));
  40. }
  41.  
  42. // Map<String, List<String>> map1 = new HashMap<String, List<String>>();
  43. // List<String> lists = new ArrayList<String>();
  44. // lists.add("bbb");
  45. // lists.add("ccc");
  46. // map1.put("girlfriend", lists);
  47. // System.out.println("map1====" + map1.toString());
  48. // System.out.println(map1.get("girlfriend"));
  49. // System.out.println(map1.get("girlfriend").get(0) + "=====" + map1.get("girlfriend").get(1));
  50. //
  51.  
  52. }
  53.  
  54. }

Xml格式数据转map工具类的更多相关文章

  1. R语言XML格式数据导入与处理

    数据解析 XML是一种可扩展标记语言,它被设计用来传输和存储数据.XML是各种应用程序之间进行数据传输的最常用的工具.它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强 ...

  2. Android中解析XML格式数据的方法

    XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...

  3. Controller接收处理json、xml格式数据

    1.RequestBody接收json格式的数据,并直接转为对象. User.java使用lombok依赖包 @Data @AllArgsConstructor @NoArgsConstructor ...

  4. PHP生成和获取XML格式数据

    在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的X ...

  5. JavaScript 数据值校验工具类

    /** * 数据值校验工具类 */ var checkService = { // 不校验 none: function () { return true; }, //非空校验 isEmpty: fu ...

  6. yii2 输出xml格式数据

    作者:白狼 出处:http://www.manks.top/yii2_xml_response.html.html本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文 ...

  7. Android使用DOM生成和输出XML格式数据

    Android使用DOM生成和输出XML格式数据 本文主要简单解说怎样使用DOM生成和输出XML数据. 1. 生成和输出XML数据 代码及凝视例如以下: try { DocumentBuilderFa ...

  8. xml格式字符串转为Map

    import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom ...

  9. iOS开发之解析XML格式数据

    XML格式的数据是一种数据的传输格式.因为它方便编写.结构清晰,所以深受程序猿的喜爱,非常多人都喜欢使用XML格式数据传输或者作为程序的配置信息. 如今我将来实如今iOS中解析XML格式数据,语言使用 ...

随机推荐

  1. Python xlwt模块写Excel问题集合

    1.数字转换成汉字 数据库查询返回结果为多元组,在写入Excel需要判断,数据库查询结果是否为数字,为数字的话需要将其转换成对应的汉字,此时元组不可修改,所以需要将返回结果修改成列表.实现可以在数据库 ...

  2. nginx典型官方模块解释

    模块名称 作用 语法 默认 配置位置 配置举例 结果验证 备注 1 --with-http_stub_status_module 监控Nginx的服务器连接状态 stub_status   serve ...

  3. layui增删改查

    dao方法 package com.dao; import java.sql.SQLException; import java.util.List; import java.util.Map; im ...

  4. destoon模块绑定二级域名出现 File not found解决办法

    昨天晚上帮一个朋友给我说他绑定模块二级域名出现 File not found,所以今天分享关于解决办法. 模块启用二级域名后,首页打开正常,但是点内容页和列表页出现File not found. 解决 ...

  5. LeetCode 分治算法

    分治算法:是将问题划分为一些独立的子问题,递归的求解个子问题,然后合并子问题的解而得到原问题的解. 分治算法步骤 step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题: ...

  6. 2019.6.11_MySQL进阶二:主键与外键

    通过图形界面(UI)创建外键 打开设计表,在对应的栏位填写相应的内容.其中FK_deptno是限制名 # 先给主表建立主键   ALTER TABLE dept ADD PRIMARY KEY(dep ...

  7. github上计算String相似度好的项目

    项目中包含了杰卡德NGram.cosin夹角.最长公共子序列.边际距离等常用的相似度算法. https://github.com/tdebatty/java-string-similarity

  8. [转]python 中的[:-1]和[::-1]

    转自:https://blog.csdn.net/mingyuli/article/details/81604795 1.案例解释a='python'b=a[::-1]print(b) #nohtyp ...

  9. eclipse maven项目如何将所有的jar包复制到lib目录下?

      1.情景展示 我们知道,maven项目的jar包并不存在于项目当中,项目所需的jar包都保存在本地仓库中,如果本地仓库没有,会从配置的中央仓库下载,如果中央仓库也没有就会报错: 如上图所示,我想将 ...

  10. HttpUtility.HtmlDecode ,HttpUtility.HtmlEncode 与 Server.HtmlDecode ,Server.HtmlEncode 与 HttpServerUtility.HtmlDecode , HttpServerUtility.HtmlEncode

    HtmlEncode: 将 Html 源文件中不允许出现的字符进行编码,通常是编码以下字符"<".">"."&" 等. ...