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 730L - Expression Queries(大模拟)
Codeforces 题面传送门 & 洛谷题面传送门 大模拟(?)+阿巴细节题,模拟赛时刚了 3h 最后因为某个细节写挂 100->40/ll/ll(下次一定不能再挂分了啊 awa) 首 ...
- 洛谷 P4707 - 重返现世(扩展 Min-Max 容斥+背包)
题面传送门 首先看到这种求形如 \(E(\max(T))\) 的期望题,可以套路地想到 Min-Max 容斥 \(\max(S)=\sum\limits_{T\subseteq S}(-1)^{|T| ...
- CF1202E You Are Given Some Strings...
题目传送门. 题意简述:给出 \(t\) 与 \(s_{1,2,\cdots,n}\).求对于所有 \(i,j\in[1,n]\),\(s_i+s_j\) 在 \(t\) 中出现次数之和. 如果只有 ...
- 【豆科基因组】木豆Pigeonpea (Cajanus cajan) 292个自然群体重测序2017NG
目录 一.来源 二.结果 一.来源 Whole-genome resequencing of 292 pigeonpea accessions identifies genomic regions a ...
- 【3】蛋白鉴定软件之Mascot
目录 1.简介 2.配置 2.1在线版本 2.2 服务器版本 3.运行 3.1 在线版本 3.2 服务器版本 4.结果 1.简介 Mascot是非常经典的蛋白鉴定软件,被Frost & Sul ...
- CPU大小端模式及转换
通信协议中的数据传输.数组的存储方式.数据的强制转换等这些都会牵涉到大小端问题. CPU的大端和小端模式很多地方都会用到,但还是有许多朋友不知道,今天暂且普及一下. 一.为什么会有大小端模式之分呢? ...
- 痞子衡嵌入式:利用GPIO模块来测量i.MXRT1xxx的系统中断延迟时间
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx的系统中断延迟时间. 在 <Cortex-M系统中断延迟及其测量方法简介> 一文里,痞子衡介绍了 Cor ...
- 第一个基础框架 — mybatis框架 — 更新完毕
1.Mybatis是什么? 百度百科一手 提取一下重点: MyBatis 本是apache的一个开源项目iBatis.即:mybatis的原名为:ibatis 2010年迁移到google code, ...
- Ubuntu 14.04 升级到 Ubuntu16.04
Ubuntu 14.04 升级到 Ubuntu16.04 1). 更改source.list 源 (24条消息) Ubuntu16.04 source.list更改源_dylan的博客-CSDN博客_ ...
- 17. yum
https://www.linuxidc.com/Linux/2015-04/116331.htm