importjava.io.ByteArrayOutputStream;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.TreeMap;importnet.sf.json.JSON;importnet.sf.json.JSONSerializer;importnet.sf.json.xml.XMLSerializer;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.DocumentHelper;importorg.dom4j.Element;importorg.dom4j.io.OutputFormat;importorg.dom4j.io.XMLWriter;/*** common xml conver utility
*
*@authorviruscodecn@gmail.com
*@versionFramework 2010.10.26
* @urlhttp://blog.csdn.net/arjick/article/details/6251777
*/
public classXmlConverUtil {/*** map to xml xml value1
* label="key2">value2
......*
*@parammap
*@return
*/
public staticString maptoXml(Map map) {
Document document=DocumentHelper.createDocument();
Element nodeElement= document.addElement("node");for(Object obj : map.keySet()) {
Element keyElement= nodeElement.addElement("key");
keyElement.addAttribute("label", String.valueOf(obj));
keyElement.setText(String.valueOf(map.get(obj)));
}returndoc2String(document);
}/*** list to xml xml value1
* label="key2">value2
......* label="key1">value1
* label="key2">value2
......*
*@paramlist
*@return
*/
public static String listtoXml(List list) throwsException {
Document document=DocumentHelper.createDocument();
Element nodesElement= document.addElement("nodes");int i = 0;for(Object o : list) {
Element nodeElement= nodesElement.addElement("node");if (o instanceofMap) {for(Object obj : ((Map) o).keySet()) {
Element keyElement= nodeElement.addElement("key");
keyElement.addAttribute("label", String.valueOf(obj));
keyElement.setText(String.valueOf(((Map) o).get(obj)));
}
}else{
Element keyElement= nodeElement.addElement("key");
keyElement.addAttribute("label", String.valueOf(i));
keyElement.setText(String.valueOf(o));
}
i++;
}returndoc2String(document);
}/*** json to xml {"node":{"key":{"@label":"key1","#text":"value1"}}} conver
*
* label="key1">value1
*
*@paramjson
*@return
*/
public staticString jsontoXml(String json) {try{
XMLSerializer serializer= newXMLSerializer();
JSON jsonObject=JSONSerializer.toJSON(json);returnserializer.write(jsonObject);
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** xml to map xml value1
* label="key2">value2
......*
*@paramxml
*@return
*/
public staticMap xmltoMap(String xml) {try{
Map map= newHashMap();
Document document=DocumentHelper.parseText(xml);
Element nodeElement=document.getRootElement();
List node=nodeElement.elements();for (Iterator it =node.iterator(); it.hasNext();) {
Element elm=(Element) it.next();
System.out.println(elm.toString());
map.put(elm.getName(), elm.getText());
elm= null;
}
node= null;
nodeElement= null;
document= null;returnmap;
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** xml to map xml value1
* label="key2">value2
......*@paramxml
*@paramsortBoolean 是否排序
* @作者 廖正瀚
*@return*@throwsException*/
public static Map xmlToMap(String xml, boolean sortBoolean) throwsException {
Mapmap;if(sortBoolean) {
map= new TreeMap();
}else{
map= new HashMap();
}
Document document=DocumentHelper.parseText(xml);
Element nodeElement=document.getRootElement();
@SuppressWarnings("rawtypes")
Iterator it=nodeElement.elements().iterator();while( it.hasNext()) {
Element elm=(Element) it.next();
System.out.println(elm.toString());
map.put(elm.getName(), elm.getText());
elm= null;
}returnmap;
}/*** xml to list xml value1
* label="key2">value2
......* label="key1">value1
* label="key2">value2
......*
*@paramxml
*@return
*/
public staticList xmltoList(String xml) {try{
List list = new ArrayList();
Document document=DocumentHelper.parseText(xml);
Element nodesElement=document.getRootElement();
List nodes=nodesElement.elements();for (Iterator its =nodes.iterator(); its.hasNext();) {
Element nodeElement=(Element) its.next();
Map map=xmltoMap(nodeElement.asXML());
list.add(map);
map= null;
}
nodes= null;
nodesElement= null;
document= null;returnlist;
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** xml to json value1 转化为
* {"key":{"@label":"key1","#text":"value1"}}
*
*@paramxml
*@return
*/
public staticString xmltoJson(String xml) {
XMLSerializer xmlSerializer= newXMLSerializer();returnxmlSerializer.read(xml).toString();
}/***
*@paramdocument
*@return
*/
public staticString doc2String(Document document) {
String s= "";try{//使用输出流来进行转化
ByteArrayOutputStream out = newByteArrayOutputStream();//使用UTF-8编码
OutputFormat format = new OutputFormat(" ", true, "UTF-8");
XMLWriter writer= newXMLWriter(out, format);
writer.write(document);
s= out.toString("UTF-8");
}catch(Exception ex) {
ex.printStackTrace();
}returns;
}
}