当前位置: 代码迷 >> 综合 >> JAVA Map<String,Object> 与xml的转换
  详细解决方案

JAVA Map<String,Object> 与xml的转换

热度:60   发布时间:2024-02-07 22:46:04.0

 1、map-->xml

/*** @将Dictionary转成xml* @return 经转换得到的xml串**/public static String toXml(Map<String,Object> parm){StringBuffer xml = new StringBuffer();xml.append("<xml>");if(parm != null){for (Map.Entry<String, Object> entry : parm.entrySet()) {if(entry != null  ){}xml.append("<").append(entry.getKey()).append(">");//isNotNullOrEmptyStr是判断不为空的方法if(entry.getValue() instanceof  String){xml.append("<![CDATA[");xml.append(entry.getValue());xml.append("]]>");}else{xml.append(entry.getValue());}xml.append("</").append(entry.getKey()).append(">");}}xml.append("</xml>");String  result ="";if(xml != null){try {result = xml.toString();//result = new String(xml.toString().getBytes("utf-8"),"ISO8859-1");} catch (Exception e) {e.printStackTrace();}}return result;}

 2、xml-->map

 /*** xml转成map* @return Map<String, String>**/public static Map<String, String> xmlToMap(String xml) {try {Map<String, String> data = new HashMap<>();DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();InputStream stream = new ByteArrayInputStream(xml.getBytes("UTF-8"));org.w3c.dom.Document doc = documentBuilder.parse(stream);doc.getDocumentElement().normalize();NodeList nodeList = doc.getDocumentElement().getChildNodes();for (int idx = 0; idx < nodeList.getLength(); ++idx) {Node node = nodeList.item(idx);if (node.getNodeType() == Node.ELEMENT_NODE) {org.w3c.dom.Element element = (org.w3c.dom.Element) node;data.put(element.getNodeName(), element.getTextContent());}}stream.close();return data;} catch (Exception e) {e.printStackTrace();return null;}}