JAVA如何实现map集合转Xml呢?
下文笔者讲述java代码实现map集合转xml的方法及示例分享,如下所示
map集合转xml的实现思路
遍历元素
然后为一个xml字符串
例:Map转xml的示例
import java.util.Iterator;
import java.util.SortedMap;
import java.util.TreeMap;
public class MainTest {
/**
* map转xml格式
* @param sortedMap
* @return
*/
public static String mapToXml(SortedMap<Object, Object> sortedMap) {
StringBuffer sb = new StringBuffer("<Request>");
Iterator iterator = sortedMap.keySet().iterator();
while (iterator.hasNext()) {
Object key = (String) iterator.next();
Object value = sortedMap.get(key);
sb.append("<" + key + ">");
sb.append(value);
sb.append("</" + key + ">");
}
sb.append("</Request>");
return sb.toString();
}
public static void main(String[] args) {
SortedMap<Object, Object> paramMap = new TreeMap<Object, Object>();
paramMap.put("code1", 888);
paramMap.put("code2", 999);
paramMap.put("code3", 666);
String soapXML =mapToXml(paramMap);
System.out.println(soapXML);
}
}
----运行以上代码,将输出以下信息
<Request><code1>888</code1><code2>999</code2><code3>666</code3></Request>
多结构xml转换
/**
* map转xml格式(多结构拼接生成)
* @param sortedMap
* @return
*/
public static String mapToSignXml(SortedMap<Object, Object> sortedMap) {
StringBuilder builder = new StringBuilder();
Iterator iterator = sortedMap.keySet().iterator();
while (iterator.hasNext()) {
Object key = (String) iterator.next();
Object value = sortedMap.get(key);
builder.append("<" + key + ">");
if (value instanceof SortedMap) {
SortedMap sortedMap1 = (SortedMap) value;
builder.append(mapToSignXml(sortedMap1));
} else {
builder.append(value);
}
builder.append("</" + key + ">");
}
return builder.toString();
}
public static void main(String[] args) {
SortedMap<Object, Object> requestMap = new TreeMap<Object, Object>();
SortedMap<Object, Object> paramMap = new TreeMap<Object, Object>();
paramMap.put("requid", "111");
SortedMap<Object, Object> retrieveargsMap = new TreeMap<Object, Object>();
retrieveargsMap.put("code1", 111);
retrieveargsMap.put("code2", 222);
SortedMap<Object, Object> paramMap1 = new TreeMap<Object, Object>();
paramMap1.put("child1", "1111");
paramMap1.put("child2", "2222");
paramMap1.put("child3", "3333");
retrieveargsMap.put("code3", paramMap1);
paramMap.put("retriev", retrieveargsMap);
requestMap.put("request",paramMap);
String soapXML = mapToSignXml(requestMap);
System.out.println(soapXML);
}
生成结果
<request>
<requid>111</requid>
<retriev>
<code1>111</code1>
<code2>222</code2>
<code3>
<child1>1111</child1>
<child2>2222</child2>
<child3>3333</child3>
</code3>
</retriev>
</request>
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


