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", 111);
paramMap.put("code2", 222);
paramMap.put("code3", 333);
String soapXML =mapToXml(paramMap);
System.out.println(soapXML);
}
}

输出

<Request><code1>111</code1><code2>222</code2><code3>333</code3></Request>

如果是多结构的话,可以使用下方这个

/**
* 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>

JAVA实现map集合转Xml格式的更多相关文章

  1. java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  2. Java基础知识:Java实现Map集合二级联动1

    Java实现Map集合二级联动 Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省 ...

  3. java中map集合的迭代

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...

  4. Java实现Map集合二级联动

    Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省市级联选择框,当选择省份信息时, ...

  5. java中Map集合的理解

    Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.jdk1.0.效率低. |--HashMap:底层是哈希表数据结构,允许使用 null 值和 ...

  6. Java基础知识:Java实现Map集合二级联动2

    2. 定义获取省份的方法,创建一个Map集合,将上一步得到的映射集合赋值给它,使用Map集合的keySet()方法获取该集合中的所有键对象组成的Set 集合,即为省分集合,创建一个Object型一维数 ...

  7. java基础——Map集合

    Map以键值对的形式存储数据,其中Map.entry,是Map的内部类,它用来描述Map中的键值对.Map是一个接口,HashMap是他的一个实现类 Map中有几个重要的方法: get(Object ...

  8. Java 利用Map集合计算一个字符串中每个字符出现的次数

    步骤分析 1.给出一串字符串,字符串中可以包含字母.数字.符号等等. 2.创建一个Map集合,key是字符串中的字符,value是字符的个数. 3.遍历字符串,获取每一个字符. 5.使用获取到的字符, ...

  9. java中Map集合的常用方法 (转)

    原文地址:https://www.cnblogs.com/xiaostudy/p/9510763.html Map集合和Collection集合的区别 Map集合是有Key和Value的,Collec ...

随机推荐

  1. 各种多项式操作的 n^2 递推

    zszz,使用 NTT 可以在 \(\mathcal O(n\log n)\) 的时间内求出两个多项式的卷积.以及一个多项式的 \(\text{inv},\ln,\exp,\text{sqrt}\) ...

  2. CF1437G Death DBMS

    题面传送门. 题意简述:给出 \(n\) 个字符串 \(s_i\),每个 \(s_i\) 初始权值为 \(0\).\(q\) 次操作:修改 \(s_i\) 的权值:查询给出字符串 \(q\) 能匹配的 ...

  3. MYSQL5.8----M3

    333333333333333333333333333 mysql> DESC user; +----------+---------------------+------+-----+---- ...

  4. GlimmerHMM指南

    GlimmerHMM指南 官方用户手册 GlimmerHMM是一种De novo的新基因预测软件. 新基因发现基于Generalized Hidden Markov Model (GHMM). Gli ...

  5. three.js很好玩

    能用鼠标拉着转. https://files.cnblogs.com/files/blogs/714801/%E7%A9%BA%E9%97%B4%E5%87%A0%E4%BD%95.7z var po ...

  6. [云原生]Docker - 镜像

    目录 Docker镜像 获取镜像 列出本地镜像 创建镜像 方法一:修改已有镜像 方法二:通过Dockerfile构建镜像 方法三:从本地文件系统导入 上传镜像 保存和载入镜像 移除本地镜像 镜像的实现 ...

  7. [web安全] 利用pearcmd.php从LFI到getshell

    有一段时间没写blog了,主要是事多,加上学的有些迷茫,所以内耗比较大.害,沉下心好好学吧. 漏洞利用背景: 允许文件包含,但session等各种文件包含都已经被过滤了.ctf题中可以关注regist ...

  8. FileReader (三) - 网页拖拽并预显示图片简单实现

    以下是一个很贱很简单的一个 在网页上图拽图片并预显示的demo. 我是从https://developer.mozilla.org/en-US/docs/Web/API/FileReader#Stat ...

  9. STL学习笔记1

    STL六大部件 容器.分配器.算法.迭代器.适配器.仿函数 他们的关系如下

  10. 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍

    其他链接 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 ...