map与xml之间的相互转换
经过测试之后发布,希望对新手们有所帮助
public class TestCode {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, 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("<xml>\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) + "</" + k + ">\n");
}
}
sb.append("</xml>");
String sbInfo = sb.toString();
System.out.println("map转成xml之后的数据:\n" + sbInfo);
// xml转map
try {
Map<String, String> restMap = new HashMap<String, 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<Element> 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();
}
}
}