Java Map转成xml标签字符串
一个简单的java实现,供参考:
package com.trilogy.session.data; import java.lang.reflect.Field;
import java.util.Collection;
import java.util.Map;
import java.util.Set; /**
* The Class MapToXMLString.
*
* @author sword.cai (c) Totyustar 2008.
*/
public class MapToXMLString { /**
* Converter Map<Object, Object> instance to xml string. Note: currently,
* we aren't consider more about some collection types, such as array,list,
*
* @param dataMap the data map
*
* @return the string
*/
public static String converter(Map<Object, Object> dataMap)
{
synchronized (MapToXMLString.class)
{
StringBuilder strBuilder = new StringBuilder();
strBuilder.append("<xmlroot>");
Set<Object> objSet = dataMap.keySet();
for (Object key : objSet)
{
if (key == null)
{
continue;
}
strBuilder.append("\n");
strBuilder.append("<").append(key.toString()).append(">\n");
Object value = dataMap.get(key);
strBuilder.append(coverter(value));
strBuilder.append("</").append(key.toString()).append(">\n");
}
strBuilder.append("</xmlroot>");
return strBuilder.toString();
}
} public static String coverter(Object[] objects) {
StringBuilder strBuilder = new StringBuilder();
for(Object obj:objects) {
strBuilder.append("<item className=").append(obj.getClass().getName()).append(">\n");
strBuilder.append(coverter(obj));
strBuilder.append("</item>\n");
}
return strBuilder.toString();
} public static String coverter(Collection<?> objects)
{
StringBuilder strBuilder = new StringBuilder();
for(Object obj:objects) {
strBuilder.append("<item className=").append(obj.getClass().getName()).append(">\n");
strBuilder.append(coverter(obj));
strBuilder.append("</item>\n");
}
return strBuilder.toString();
} /**
* Coverter.
*
* @param object the object
* @return the string
*/
public static String coverter(Object object)
{
if (object instanceof Object[])
{
return coverter((Object[]) object);
}
if (object instanceof Collection)
{
return coverter((Collection<?>) object);
}
StringBuilder strBuilder = new StringBuilder();
if (isObject(object))
{
Class<? extends Object> clz = object.getClass();
Field[] fields = clz.getDeclaredFields(); for (Field field : fields)
{
field.setAccessible(true);
if (field == null)
{
continue;
}
String fieldName = field.getName();
Object value = null;
try
{
value = field.get(object);
}
catch (IllegalArgumentException e)
{
continue;
}
catch (IllegalAccessException e)
{
continue;
}
strBuilder.append("<").append(fieldName)
.append(" className=\"").append(
value.getClass().getName()).append("\">\n");
if (isObject(value))
{
strBuilder.append(coverter(value));
}
else if (value == null)
{
strBuilder.append("null\n");
}
else
{
strBuilder.append(value.toString() + "\n");
}
strBuilder.append("</").append(fieldName).append(">\n");
}
}
else if (object == null)
{
strBuilder.append("null\n");
}
else
{
strBuilder.append(object.toString() + "\n");
}
return strBuilder.toString();
} /**
* Checks if is object.
*
* @param obj the obj
*
* @return true, if is object
*/
private static boolean isObject(Object obj)
{
if (obj == null)
{
return false;
}
if (obj instanceof String)
{
return false;
}
if (obj instanceof Integer)
{
return false;
}
if (obj instanceof Double)
{
return false;
}
if (obj instanceof Float)
{
return false;
}
if (obj instanceof Byte)
{
return false;
}
if (obj instanceof Long)
{
return false;
}
if (obj instanceof Character)
{
return false;
}
if (obj instanceof Short)
{
return false;
}
if (obj instanceof Boolean)
{
return false;
}
return true;
} }
Java Map转成xml标签字符串的更多相关文章
- Java对象转换成xml对象和Java对象转换成JSON对象
1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...
- 工具类--map 转成xml xml转成map
public class WxChatReq { /** * Map转换成XML * @param data * @return * @throws Exception */ public stati ...
- C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串
在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的 ...
- [Java] 解决spring的xml标签内不能自由增加说明的难题,方便调试、部署时进行批量屏蔽
作者:zyl910 以往我们想在spring的xml配置文件中增加说明文本时,只能使用xml注释(<!-- 注释 -->).这对于"调试.部署时想批量屏蔽部分bean" ...
- 将bean转换成XML字符串
package com.sinoservices.bms.bbl.rest.bean; import javax.xml.bind.annotation.XmlAccessType; import j ...
- [Python正则表达式] 字符串中xml标签的匹配
现在有一个需求,比如给定如下数据: 0-0-0 0:0:0 #### the 68th annual golden globe awards #### the king s speech earns ...
- java将map拼接成“参数=值&参数=值”
Java将Map拼接成"参数=值&参数=值" 把一个map的键值对拼接成"参数=值&参数=值"即"username=angusbao& ...
- java把html标签字符转普通字符(反转换成html标签)(摘抄)
下面是java把html标签字符转换,我用了spring 包中的 org.springframework.web.util.HtmlUtils 了解了源代码并且进步了使用,发现写得真不错...同时也可 ...
- 将字符串转换成xml并取得对应的值
如数据库中有一个字段保存了xml格式的一串字符串: <?xml version="1.0" encoding="utf-16"?><Array ...
随机推荐
- [LeetCode] 203. 移除链表元素(链表基本操作-删除)、876. 链表的中间结点(链表基本操作-找中间结点)
题目 203. 移除链表元素 删除链表中等于给定值 val 的所有节点. 题解 删除结点:要注意虚拟头节点. 代码 class Solution { public ListNode removeEle ...
- SpringCloud实战 | 第三篇:SpringCloud整合Nacos实现配置中心
前言 随着eureka的停止更新,如果同时实现注册中心和配置中心需要SpringCloud Eureka和SpringCloud Config两个组件;配置修改刷新时需要SpringCloud Bus ...
- HashTable学习
HashTable虽然加上了线程安全,但是源码走向和思想比hashMap还是要简单直白很多,hashmap还得再看,因为很多关键点没有get,下午&明天自己去debug一遍再继续看看博客 脑子 ...
- 【5】JMicro免费在线消息服务
JMicro是一个用Java语言实现的开源微服务全家桶, 源码地址:https://github.com/mynewworldyyl/jmicro, Demo地址:http://jmicro.cn/. ...
- powershell中使用Get-FileHash计算文件的hash值
今天在公司一台windows服务器上.需要对两个文件进行比对,笔者首先就想到了可以使用md5校验 但是公司服务器上又不可以随意安装软件,于是笔者想到了可以试试windows自带的powershell中 ...
- 微服务实战系列(四)-注册中心springcloud alibaba nacos
1.场景描述 因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的 ...
- 黑菜菌的JAVA学习笔记
简介 本文是笔者对<JAVA编程思想>的学习笔记.以自己的思维理解来写下这篇文章,尽可能地简练,易懂.本文将随本人学习进度实时更新 对象导论 抽象过程 汇编语言是对底层机器码的抽象,而面向 ...
- 初探JVM
JVM探究 请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析? JVM的常用调优参数? 内存快照如何抓取,怎么分析 ...
- makefile从入门到入门
makefile文件是用来帮助编译和管理C++项目代码的,需要配合make命令使用.makefile里也可以执行shell操作,具备一部分.sh脚本的功能. makefile格式 makefile内容 ...
- Arduino Wire.h(IIC/ I2C)语法
转自:https://www.cnblogs.com/1996jiwei/p/6561681.html 本文转自上面链接,版权请直接参考原链接. 最近在用I2C进行通信交流,发现有两种方法的头文件需要 ...