一个简单的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. 自然常数e的含义

    e是一个重要的常数,但是它的直观含义却不像 π 那么明了.我们都知道,圆的周长与直径之比是一个常数,这个常数被称为圆周率,记作 π = 3.14159......可是e代表什么呢? e是“指数”(ex ...

  2. NOIP2017 Day1 T1 小凯的疑惑

    题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小凯想知道在无法准确支付的物品中,最贵的价 ...

  3. Nginx反代MogileFS集群

    上一篇博文我们主要聊了下分布式文件系统MogileFS的组件以及部署使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13677279.html:今天我们主要 ...

  4. 1.8HDFS细节

  5. Eclipse安装AmaterasUML插件问题

    为了画UML图,我想在Eclipse(版本Version: Oxygen Release (4.7.0))安装AmaterasUML,第一步,安装GEF - http://download.eclip ...

  6. Java List 常用集合 ArrayList、LinkedList、Vector

    Java 中的 List 是非常常用的数据类型.List 是有序的 Collection,Java List 一共有三个实现类,分别是:ArrayList.Vector.LinkedList 本文分析 ...

  7. dubbo学习(三)配置dubbo API方式配置

    provider(生产者) import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.Pro ...

  8. 2020年秋季最新Python详细入门教程!全网最新最全

    1. import # -*- coding: utf-8 -*- ## 引入新的包 import turtle import pickle # 文件操作 import tensorflow as t ...

  9. 论文阅读笔记: Natural Language Inference over Interaction Space

    这篇文章提出了DIIN(DENSELY INTERACTIVE INFERENCE NETWORK)模型. 是解决NLI(NATURAL LANGUAGE INFERENCE)问题的很好的一种方法. ...

  10. Oracle 中 Start With 关键字

    Start With (树查询) 基本语法如下: SELECT ... FROM + 表名 WHERE + 条件3 START WITH + 条件1 CONNECT BY PRIOR + 条件2 -- ...