zoukankan      html  css  js  c++  java
  • XML与Bean之间的互换

    1.

    public final class XMLBeanUtils {
        /**
         * 将Bean转换为XML
         * 
         * @param clazzMap
         *            别名-类名映射Map
         * @param bean
         *            要转换为xml的bean对象
         * @return XML字符串
         * @throws IOException
         */
        @SuppressWarnings("unchecked")
        public static String bean2xml(Map<String, Class> clazzMap, Object bean) throws IOException {
            XStream xstream = new XStream();
            Map.Entry<String, Class> m  = null;
            for (Iterator it = clazzMap.entrySet().iterator(); it.hasNext();) {
                m = (Map.Entry<String, Class>) it.next();
                xstream.alias(m.getKey(), m.getValue());
            }
            String xml = xstream.toXML(bean);
    
            Document document = null;
            try {
                document = DocumentHelper.parseText(xml.replaceAll("__", "_"));
    
            } catch (DocumentException e) {
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
            StringWriter writer = new StringWriter();
            OutputFormat format = OutputFormat.createPrettyPrint();
            XMLWriter xmlwriter = new XMLWriter(writer, format);
            try {
                xmlwriter.write(document);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return (writer.toString()).replaceAll("&amp;#x000A;", "&#x000A;").replaceAll("&", "&amp;");
    
        }
    
        /**
         * 将XML转换为Bean
         * 
         * @param clazzMap
         *            别名-类名映射Map
         * @param xml
         *            要转换为bean对象的xml字符串
         * @return Java Bean对象
         */
        public static Object xml2Bean(Map<String, Class> clazzMap, String xml) {
            XStream xstream = new XStream();
            xstream.setMode(XStream.NO_REFERENCES);
            for (Iterator it = clazzMap.entrySet().iterator(); it.hasNext();) {
                Map.Entry<String, Class> m = (Map.Entry<String, Class>) it.next();
                xstream.alias(m.getKey(), m.getValue());
            }
            Object bean = null;
            try {
                bean = xstream.fromXML(xml);
            } catch (Exception e) {
                bean = e;
            }
            return bean;
        }
    
        /**
         * 获取XStream对象
         * 
         * @param clazzMap
         *            别名-类名映射Map
         * @return XStream对象
         */
        public static XStream getXStreamObject(Map<String, Class> clazzMap) {
            XStream xstream = new XStream();
            for (Iterator it = clazzMap.entrySet().iterator(); it.hasNext();) {
                Map.Entry<String, Class> m = (Map.Entry<String, Class>) it.next();
                xstream.alias(m.getKey(), m.getValue());
            }
            return xstream;
        }
    }
  • 相关阅读:
    JSON库之性能比较:JSON.simple VS GSON VS Jackson VS JSONP
    mysql存储过程批量插入数据
    mysql 5.7.12 winx64安装配置方法图文教程
    mysql-5.7.12-winx64 安装
    spring下载地址
    jdbc动态切换数据库
    Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
    WebSercice Demo
    面试问题之数据结构与算法:最小生成树算法
    面试问题之数据结构与算法:最大连续子序列和
  • 原文地址:https://www.cnblogs.com/bravolove/p/5805541.html
Copyright © 2011-2022 走看看