终于说服自己总结知识,开始尝试着写博客。
从事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爱好者加入互联网大军。