java Map转XML
2017-07-09 00:00
302 查看
package com.lmx.common.util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.lang.reflect.Field; import java.util.Collection; import java.util.Map; import java.util.Set; /** * Created by qin on 2016/8/31. */ public class XMLUtil { private static Log logger = LogFactory.getLog(XMLUtil.class); /** * 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 (XMLUtil.class) { StringBuilder strBuilder = new StringBuilder(); strBuilder.append("<xml>"); strBuilder.append("\n"); Set<Object> objSet = dataMap.keySet(); for (Object key : objSet) { if (key == null) { continue; } // strBuilder.append("\n"); strBuilder.append("<").append(key.toString()).append(">"); Object value = dataMap.get(key); strBuilder.append(coverter(value)); strBuilder.append("</").append(key.toString()).append(">\n"); } strBuilder.append("</xml>"); 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"); } else { strBuilder.append(object.toString()); } 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使用jdom架包解析xml字符串dom原理并保存map对象
- Java转换xml、list、map和json
- 微信APP支付统一下单、加签、map转xml,java代码
- java的Xml转map
- java解析xml转为Map
- [Java]一则自定义的XStream转换器,主要用于POJO XML反序列化为Map/List
- java转换xml、list、map和json
- java.lang.RuntimeException: Error caching map.xml
- java转换xml、list、map和json
- java实现对象转换为map、xml字符串转化为map、map转化为xml字符串
- java的map格式数据转xml
- java转换xml、list、map和json
- java 定时器生成sitemap.xml
- java--09--对象、JSON、Map、XML之间的转换
- org.apache.ibatis.builder.xml.IncompleteStatementException: Could not find result map java.util.Map
- Java XML解析,,Node直接转为对象。考虑了一般的类,简单类型,数组,还未考虑List,Map
- 【Java】使用Java对Xml的解析,并把它的所有二级结点放到MAP中,再把所有的MAP放到list之中
- Java Map转成xml标签字符串
- oracle 时间类型 与java mybatis.xml 文件配置 resultMap 对应时间类型 JsonConfig 转换oracle里的时间类型
- Java-map 转 xml