一个简单的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标签字符串的更多相关文章

  1. Java对象转换成xml对象和Java对象转换成JSON对象

    1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...

  2. 工具类--map 转成xml xml转成map

    public class WxChatReq { /** * Map转换成XML * @param data * @return * @throws Exception */ public stati ...

  3. C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串

    在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的 ...

  4. [Java] 解决spring的xml标签内不能自由增加说明的难题,方便调试、部署时进行批量屏蔽

    作者:zyl910 以往我们想在spring的xml配置文件中增加说明文本时,只能使用xml注释(<!-- 注释 -->).这对于"调试.部署时想批量屏蔽部分bean" ...

  5. 将bean转换成XML字符串

    package com.sinoservices.bms.bbl.rest.bean; import javax.xml.bind.annotation.XmlAccessType; import j ...

  6. [Python正则表达式] 字符串中xml标签的匹配

    现在有一个需求,比如给定如下数据: 0-0-0 0:0:0 #### the 68th annual golden globe awards #### the king s speech earns ...

  7. java将map拼接成“参数=值&参数=值”

    Java将Map拼接成"参数=值&参数=值" 把一个map的键值对拼接成"参数=值&参数=值"即"username=angusbao& ...

  8. java把html标签字符转普通字符(反转换成html标签)(摘抄)

    下面是java把html标签字符转换,我用了spring 包中的 org.springframework.web.util.HtmlUtils 了解了源代码并且进步了使用,发现写得真不错...同时也可 ...

  9. 将字符串转换成xml并取得对应的值

    如数据库中有一个字段保存了xml格式的一串字符串: <?xml version="1.0" encoding="utf-16"?><Array ...

随机推荐

  1. 《图解HTTP》学习笔记之入门

    学习HTTP之前,很必要了解一下关于Web网络基础. TCP/IP协议族 1.应用层:应用层决定了向用户提供应用 服务时的通信活动,比如FTP(文件传输协议).DNS(域名系统).HTTP(超文本传输 ...

  2. HTTP 【值得你看个究竟】

    我是一名程序员,我的主要编程语言是 Python,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟.醍醐灌顶的感觉. 认识 ...

  3. Redis底层数据结构详解

    上一篇说了Redis有五种数据类型,今天就来聊一下Redis底层的数据结构是什么样的.是这一周看了<redis设计与实现>一书,现来总结一下.(看书总是非常烦躁的!) Redis是由C语言 ...

  4. 深度长文整理-Redis进阶

    目录 一.基础 二.为什么Redis是单线程的? 三.为什么单线程这么快? 四.select.poll.epoll 五.Redis的事物 六.Redis的监控 七.Redis的配置文件 八.Redis ...

  5. Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)

    1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好 ...

  6. 注解在Spring中的运用(对象获取、对象单例/多例、值的注入、初始化/销毁方法、获取容器)

    1.注解的方式获取对象 (1)导包: (2)书写配置文件(要保证已经导入了约束): <?xml version="1.0" encoding="UTF-8" ...

  7. Spring Boot第四弹,一文教你如何无感知切换日志框架?

    持续原创输出,点击上方蓝字关注我吧 目录 前言 Spring Boot 版本 什么是日志门面? 如何做到无感知切换? 如何切换? 引入依赖 指定配置文件 日志如何配置? 总结 前言 首先要感谢一下读者 ...

  8. Android 自定义Vie 对勾CheckBox

    天在美团点外卖,有一个商品推荐的条目,上面的CheckBox是自定义的,虽然我们大部分都是用图片来自定义样式.但是还是可以自定义View来绘制的,只要画一个圆和对勾即可. 最终效果 最终效果.png ...

  9. hosts文件的内容

    C:\Windows\System32\drivers\etc\hosts 1 # Copyright (c) 1993-2009 Microsoft Corp. 2 # 3 # This is a ...

  10. HTML & CSS & JavaScript 从一个表格到一个灰阶颜色表 01

    工具1:HBuilder X 1.9.9.20190522 工具2:火狐浏览器 67.0.4 (64 位) 在开始之前,你需要了解一些基本的知识,不要求你能掌握,但是了解一下还是有益的: HTML 简 ...