zoukankan      html  css  js  c++  java
  • 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("
    ");
                    strBuilder.append("<").append(key.toString()).append(">
    ");
                    Object value = dataMap.get(key);
                    strBuilder.append(coverter(value));
                    strBuilder.append("</").append(key.toString()).append(">
    ");
                }
                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(">
    ");
                strBuilder.append(coverter(obj));
                strBuilder.append("</item>
    ");
            }
            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(">
    ");
                strBuilder.append(coverter(obj));
                strBuilder.append("</item>
    ");
            }
            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("">
    ");
                    if (isObject(value))
                    {
                        strBuilder.append(coverter(value));
                    }
                    else if (value == null)
                    {
                        strBuilder.append("null
    ");
                    }
                    else
                    {
                        strBuilder.append(value.toString() + "
    ");
                    }
                    strBuilder.append("</").append(fieldName).append(">
    ");
                }
            }
            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;
        }
    
    }
  • 相关阅读:
    开发网站邮件发送模块
    HttpModule的Init事件
    一个产品留言统计查寻的分析比较
    Js中清空文件上传字段(input type=file )
    Asp.net生成Excel报表
    jQuery与开发的相关js文件包含顺序
    trycatch 与 Response.End()
    asp.net2.0中的Usercontrol动态创建
    客户javascript端验证图片文件大小与规格使用Image对象
    JQuery 常用代码收集
  • 原文地址:https://www.cnblogs.com/chenghu/p/5439694.html
Copyright © 2011-2022 走看看