public classXml2JsonUtil {/***
* 转换一个xml格式的字符串到json格式
*
*@paramxml
* xml格式的字符串
*@return成功返回json 格式的字符串;失败反回null*/
public staticJSONObject xml2JSON(String xml) {
JSONObject obj= newJSONObject();try{
InputStream is= new ByteArrayInputStream(xml.getBytes("utf-8"));
SAXBuilder sb= new SAXBuilder(false);
Document doc=sb.build(is);
Element root=doc.getRootElement();
obj.put(root.getName(), iterateElement(root));returnobj;
}catch(Exception e) {
e.printStackTrace();return null;
}
}/*** 一个迭代方法
*
*@paramelement
* : org.jdom.Element
*@returnjava.util.Map 实例*/@SuppressWarnings({"unchecked", "rawtypes"})private staticMap iterateElement(Element element) {
List jiedian =element.getChildren();
Element et= null;
Map obj= newHashMap();
List list= null;for (int i = 0; i < jiedian.size(); i++) {
list= newLinkedList();
et=(Element) jiedian.get(i);if (et.getTextTrim().equals("")) {if (et.getChildren().size() == 0){continue;
}if(obj.containsKey(et.getName())) {
list=(List) obj.get(et.getName());
}
list.add(iterateElement(et));
obj.put(et.getName(), list);
}else{if(obj.containsKey(et.getName())) {
list=(List) obj.get(et.getName());
}
list.add(et.getTextTrim());
obj.put(et.getName(), list);
}
}returnobj;
}
}