JAVA实现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", 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格式的更多相关文章
- java基础-Map集合
java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...
- Java基础知识:Java实现Map集合二级联动1
Java实现Map集合二级联动 Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省 ...
- java中map集合的迭代
import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...
- Java实现Map集合二级联动
Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省市级联选择框,当选择省份信息时, ...
- java中Map集合的理解
Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.jdk1.0.效率低. |--HashMap:底层是哈希表数据结构,允许使用 null 值和 ...
- Java基础知识:Java实现Map集合二级联动2
2. 定义获取省份的方法,创建一个Map集合,将上一步得到的映射集合赋值给它,使用Map集合的keySet()方法获取该集合中的所有键对象组成的Set 集合,即为省分集合,创建一个Object型一维数 ...
- java基础——Map集合
Map以键值对的形式存储数据,其中Map.entry,是Map的内部类,它用来描述Map中的键值对.Map是一个接口,HashMap是他的一个实现类 Map中有几个重要的方法: get(Object ...
- Java 利用Map集合计算一个字符串中每个字符出现的次数
步骤分析 1.给出一串字符串,字符串中可以包含字母.数字.符号等等. 2.创建一个Map集合,key是字符串中的字符,value是字符的个数. 3.遍历字符串,获取每一个字符. 5.使用获取到的字符, ...
- java中Map集合的常用方法 (转)
原文地址:https://www.cnblogs.com/xiaostudy/p/9510763.html Map集合和Collection集合的区别 Map集合是有Key和Value的,Collec ...
随机推荐
- Codeforces 633F - The Chocolate Spree(树形 dp)
Codeforces 题目传送门 & 洛谷题目传送门 看来我这个蒟蒻现在也只配刷刷 *2600 左右的题了/dk 这里提供一个奇奇怪怪的大常数做法. 首先还是考虑分析"两条不相交路径 ...
- 集群SGE作业调度系统
目录 0. 一些基本概念 1. 常见的几种资源管理和调度系统 2. SGE常见指令 2.1 提交任务 2.2 查看任务 2.3 删除任务 2.4 挂起/恢复任务 2.5 更改任务属性 0. 一些基本概 ...
- R语言与医学统计图形-【34】绘制统计表格
表的绘制,主要是临床三线表. 1.tableone包 #install.packages('tableone') library(tableone) set.seed(2017) age <- ...
- JAVA中null,"",equals,==相互之间使用详解
"equals" 与 "==" "equals"只是比较值是否相同 而"=="则是比较两个变量是不是同一个变量,也应时是 ...
- 二进制免编译My SQL
一 下载 MySQL 安装包教程 https://blog.csdn.net/zhan107876/article/details/100701135 ll -h mysql-5.6.47-linux ...
- A Child's History of England.15
And indeed it did. For, the great army landing from the great fleet, near Exeter, went forward, layi ...
- Spark(十七)【SparkStreaming需求练习】
目录 一.环境准备 1.pom文件 2.bean 3.工具类 JDBCUtils Properties工具类 3.创建BaseApp 需求一:动态添加黑名单 需求二:广告点击量实时统计 需求三:最近一 ...
- mysql与clickhouse的字段类型对应表
- 理解inode以及软硬连接,和inode磁盘爆满的解决方案以及文件权限
理解Linux的软硬链接 创建硬链接的命令 [root@centos6 data]#ln /data/f1 /data/f2 [root@centos6 data]#ll -itotal 1613 - ...
- SpringCloud微服务-Eureka服务注册与发现
一. Eureka 是什么? Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对微服务 ...