map与xml之间的相互转换


map与xml之间的相互转换

经过测试之后发布,希望对新手们有所帮助 【map与xml之间的相互转换】

public class TestCode { public static void main(String[] args) { Map, String> map = new HashMap, String>(); map.put("version", "1.0"); map.put("charset", "UTF-8"); map.put("first", "我"); map.put("second", "我爱"); map.put("third", "我爱你"); map.put("forth", "我爱你中"); map.put("fifth", "我爱你中国"); System.out.println("map原数据:\n" + map); // map转xml StringBuffer sb = new StringBuffer(); sb.append("\n"); Set se = map.entrySet(); Iterator it = se.iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String k = (String) entry.getKey(); String v = (String) entry.getValue(); if(v != null) { sb.append("<" + k + ">" + map.get(k) + "\n"); } } sb.append(""); String sbInfo = sb.toString(); System.out.println("map转成xml之后的数据:\n" + sbInfo); // xml转map try { Map, String> restMap = new HashMap, String>(); byte[] xmlBytesInfo = sbInfo.getBytes("UTF-8"); SAXReader reader = new SAXReader(); InputSource source = new InputSource(new ByteArrayInputStream(xmlBytesInfo)); source.setEncoding("UTF-8"); Document doc = reader.read(source); Element element = doc.getRootElement(); List elements = element.elements(); for(Element el : elements){ restMap.put(el.getName().toLowerCase(), el.getTextTrim()); } System.out.println("xml转成map之后的数据:\n" + restMap); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

    推荐阅读