java xml map_Java xml和map,list格式的转换-摘抄

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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值