数据解析之xml转map

             终于说服自己总结知识,开始尝试着写博客。

           从事IT行业,经常遇到数据之间的转发与接收,无论xml还是json,都是很不错的数据载体。很多时候,我们需要将它们进行解析,方便我们获取数据,那么,我看第一天就聊一聊xml字符串如何转成map集合。

           对于这个问题,当年备胎在遇到的时候也比较头疼,网上也查了好多资料,可是个人感觉比较繁琐,对于新手阅读代码还是比较困难的,在总结了前辈的基础上,备胎也尝试写出自己比较满意的方法,而且用起来感觉确实挺不错,下面备胎分享一下自己的代码。

        首先,这里是封装子节点数据转成map。

          private Map<String, Object> getAllElements(List<Element> childElements,Map<String,Object> mapEle) {

                  for (Element ele : childElements) {

                         mapEle.put(ele.getName(), ele.getText());

                                if (ele.elements().size()>0) {

                                 mapEle = getAllElements(ele.elements(), mapEle);

                                  }

                   }

                      return mapEle;

           }

            这里是根据String类型的xml中获取根节点以及子节点

             public Map<String,Object> getData(String requestXML){

                    Document document = null;

                    Map<String,Object> map=null;

                         try {

                                      document = DocumentHelper.parseText(requestXML);

                               } catch (DocumentException e) {

                                      System.out.println("解析数据错误,请检查文本" + e.getMessage());

                              }

                           Element root = document.getRootElement();

                            //子节点

                            @SuppressWarnings("unchecked")

                            List<Element> childElements = root.elements();

                             map = new HashMap<String, Object>();

                            //遍历子节点

                            map = getAllElements(childElements,map);

                          return map;

                       }

                xml解析关键在于两部分,一部分是根节点,另一部分便是子节点,方法一主要是将子节点集合转化成map,方法二通过根节点遍历所有子节点,调用方法一,最后得到一个map集合,当然,如果是多重子节点,通过多次调用方法一同样你也可以得到一个map集合。简单复杂xml都可以利用备胎这个方法解析。

              备胎从事IT真的是源于一种兴趣,并不是冲着月薪过万去的。通过编程,你真的能从中学到很多思想,锻炼自己的思维,更重要的,你能够真的耐得住寂寞,耐心去修改一个小小的bug。希望更多的人爱好编程,分享经验,共同进步。有时间,我会分享一下如何解析json转为map。相信会有更多的IT爱好者加入互联网大军。

猜你喜欢

转载自www.cnblogs.com/lzhxc123/p/beitai123_xml.html
今日推荐