輸入java.io.ByteArrayOutputStreamを; 輸入はjava.util.ArrayList; 輸入java.util.HashMapを; インポートするjava.util.Iterator; 輸入はjava.util.List; 輸入java.util.Map; 輸入java.util.TreeMapの; 輸入net.sf.json.JSON; 輸入net.sf.json.JSONSerializer; 輸入net.sf.json.xml.XMLSerializer; 輸入org.dom4j.Document; 輸入org.dom4j.DocumentException。 輸入org.dom4j.DocumentHelper; 輸入org.dom4j.Element; 輸入org.dom4j.io.OutputFormat。 輸入org.dom4j.io.XMLWriter; / ** *一般的なXML CONVERユーティリティ * * @author [email protected] * @version フレームワーク2010年10月26日 * @url http://blog.csdn.net/arjick/article/details/6251777 * / パブリック クラスXmlConverUtil { / ** *マップにXML XML <ノード> <キーラベル= "キー1">をvalue1 </キー> <キー *ラベル= "キー2">値2 </キー> ...... </ノード> * * @paramのマップ * @return * / パブリック 静的の文字列maptoXml(地図マップ){ ドキュメントドキュメント =DocumentHelper.createDocument(); 素子nodeElement = document.addElement( "ノード" )。 用(オブジェクトobj:map.keySet()){ 要素keyElement = nodeElement.addElement( "キー" )。 keyElement.addAttribute( "ラベル" 、String.valueOf(OBJ)); keyElement.setText(String.valueOf(map.get(OBJ)))。 } 戻りdoc2String(文書)。 } / ** *リストにXML XML <ノード> <ノード> <キーラベル= "キー1">値1 </ KEY> <キー ・ラベル= "KEY2">値2 </ KEY> ...... < ・ラベル= "KEY1">値1 </ KEY> <キー ・ラベル= "KEY2" * @paramのリスト * @return * / パブリック 静的文字列listtoXml(一覧リスト)がスロー例外{ ドキュメントドキュメント = DocumentHelper.createDocumentを(); 素子nodesElement = document.addElement( "ノード" )。 int型私= 0 ; 用(オブジェクトo:リスト){ 要素nodeElement = nodesElement.addElement( "ノード" )。 もし(O instanceofのマップ){ 用(オブジェクトobj:((マップ)O).keySet()){ 要素keyElement ; = nodeElement.addElement( "キー" ); keyElement.addAttribute( "ラベル" 、String.valueOf(OBJ)); keyElement.setText(String.valueOf(((マップ)O)に.get(OBJ)))。 } } 他{ エレメントkeyElement = nodeElement.addElement( "キー" )。 keyElement.addAttribute( "ラベル" 、String.valueOf(I)); keyElement.setText(String.valueOf(O))。 } 私は ++ } 戻りdoc2String(文書)。 } / ** * XMLをJSON { "ノード":{ "キー":{ "ラベル@": "キー1"、 "#テキスト": "VALUE1"}}} CONVER * <O> <ノードクラス= "オブジェクト"> <キークラス= "オブジェクト" *ラベル= "キー1">値1 </ KEY> </ノード> </ O> * * @param JSON * @return * / パブリック 静的文字列jsontoXml(文字列JSON){ 試す{ XmlSerializerをシリアライザ = 新しいXmlSerializerを(); JSON jsonObject = JSONSerializer.toJSON(JSON)。 } キャッチ e.printStackTrace(); } 戻り ヌル。 } / ** * XMLマップするために、XMLの<node> <キーラベル= "キー1">値1 </ KEY> <キー ・ラベル= "KEY2">値2 </ KEY> ...... </ノード> * * @paramのXML * @return * / パブリック 静的地図xmltoMap(文字列XML){ 試み{ 地図マップ = 新しいHashMapの(); 文書の文書 = DocumentHelper.parseText(XML)。 document.getRootElement(); リストノード = nodeElement.elements()。 ため(イテレータは= ; it.hasNext(); node.iteratorを()){ 要素ニレ = (要素)it.next(); System.out.println(elm.toString())。 map.put(elm.getName()、elm.getText())。 ニレ = nullを。 } ノード = NULL ; nodeElement = nullを。 文書 = nullを。 リターンマップ。 }キャッチ(例外e){ e.printStackTrace(); } 戻り ヌル。 } / ** * XMLマップするために、XMLの<node> <キーラベル= "キー1">値1 </ KEY> <キー ・ラベル= "KEY2">値2 </ KEY> ...... </ノード> * @paramのXML * @param sortBoolean是否排序 * @作者廖正瀚 * @return * @throws 例外 * / パブリック 静的地図<文字列、文字列> xmlToMap(文字列、XML、ブール sortBoolean)がスロー <文字列を、 マップマップを、 もし(sortBoolean){ 地図 = 新規のTreeMap <文字列、文字列> (); } 他{ 地図 = 新規 HashMapの<文字列、文字列> (); } 文書ドキュメント = DocumentHelper.parseText(XML)。 素子nodeElement = document.getRootElement()。 @SuppressWarnings( "rawtypes" ) イテレータそれ = (nodeElement.elements)をイテレータ()。 一方、(it.hasNext()){ 要素ニレ =(要素)it.next(); System.out.println(elm.toString())。 map.put(elm.getName()、elm.getText())。 ニレ = nullを。 } リターンマップ。 } / ** *リストにXML XML <ノード> <ノード> <キーラベル= "キー1">値1 </ KEY> <キー ・ラベル= "KEY2">値2 </ KEY> ...... </ノード> <ノード> <キー ・ラベル= "KEY1">値1 </ KEY> <キー ・ラベル= "KEY2">値2 </ KEY> ...... </ノード> </ノード> 一覧xmltoList(文字列XML){ { 一覧 <地図>リスト= 新しいのArrayList <マップ> (); 文書の文書 = DocumentHelper.parseText(XML)。 素子nodesElement = document.getRootElement()。 リストノード = nodesElement.elements()。 用(イテレータその= nodes.iterator(); its.hasNext()){ 要素nodeElement = (要素)its.next(); 地図マップ = xmltoMap(nodeElement.asXML()); list.add(マップ) マップ = nullを。 } ノード = NULL ; nodesElement = nullを。 文書 = nullを。 戻り値のリスト。 } キャッチ(例外e){ e.printStackTrace(); } 戻り ヌル。 } / ** * XMLにJSON <ノード> <キーラベル= "キー1">をvalue1 </ key>の</ノード>转化为 * { "キー":{ "ラベル@": "キー1"、 "#テキスト" : "VALUE1"XML * @return * / パブリック 文字xmltoJson(文字列XML){ XmlSerializerをXmlSerializerをは = 新しいXmlSerializerを()。 リターンxmlSerializer.read(XML).toString(); } / ** * * @paramの文書 * @return * / パブリック静的文字列doc2String(文書ドキュメント){ 文字列S = "" ; 試す{ // 使用输出流来进行转化 ByteArrayOutputStreamをアウト= 新しいです ByteArrayOutputStream(); // 使用UTF-8编码 OUTPUTFORMAT形式= 新しい OUTPUTFORMAT(」」、真、 "UTF-8" )。 XmlWriterライター = 新しいするXMLWriter(うち、フォーマット)。 writer.write(文書)。 S = out.toString( "UTF-8" )。 } キャッチ(例外例){ ex.printStackTrace(); } 戻りS。 } }
JavaのXMLとマップ、リスト形式変換 - 抜粋
おすすめ
転載: www.cnblogs.com/gaoweifeng/p/12082897.html
おすすめ
ランキング