xml互转map

来源:互联网 发布:皇马淘宝旗舰店网址 编辑:程序博客网 时间:2024/06/03 13:18

private   Map<String,String> getMapFromXML(String xmlString)  {Map<String, String> resultMap=new HashMap<String, String>();try {Document document = DocumentHelper.parseText(xmlString);Element rootElement = document.getRootElement();Set<String> reSet=new HashSet<String>();toMap(rootElement, resultMap, reSet);for(String name:reSet){resultMap.remove(name);}} catch (Exception e) {e.printStackTrace();}return resultMap;    }private void toMap(Element fromElement,Map<String, String> resultMap,Set<String> reSet){List<Element> elementList = fromElement.elements();if(elementList.size()==0){String name = fromElement.getName();if(resultMap.containsKey(name)){              reSet.add(name);}else{resultMap.put(name, fromElement.getText());}}else{for(Element element:elementList){toMap(element, resultMap, reSet);}}}

在做接口对接的时,常用到该功能


Map转xml

xml转Map,如果键冲突将忽略(不会保存该键值对)

private   Map<String,String> getMapFromXML(String xmlString)  {Map<String, String> resultMap=new HashMap<String, String>();try {Document document = DocumentHelper.parseText(xmlString);Element rootElement = document.getRootElement();Set<String> reSet=new HashSet<String>();toMap(rootElement, resultMap, reSet);for(String name:reSet){resultMap.remove(name);}} catch (Exception e) {e.printStackTrace();}return resultMap;    }private void toMap(Element fromElement,Map<String, String> resultMap,Set<String> reSet){List<Element> elementList = fromElement.elements();if(elementList.size()==0){String name = fromElement.getName();if(resultMap.containsKey(name)){              reSet.add(name);}else{resultMap.put(name, fromElement.getText());}}else{for(Element element:elementList){toMap(element, resultMap, reSet);}}}





0 0