• 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;
        }
    }
  • 相关阅读:
    禅道导出用例模板乱码问题
    安装docker,部署禅道
    清理ubuntu apt中不用的源
    golang和python连接阿里云MongoDB云数据库(解决ReplicaSetNoPrimary错误)
    10分钟使用腾讯轻量应用服务器与frp开启内网穿透实现ssh
    java初学笔记
    elasticsearch相关
    XML转化问题,
    借鉴别人的。做个笔记SourceTree 使用介绍
    SQL 查询数据库是否存在该表该字段该内容
  • 原文地址:https://www.cnblogs.com/bravolove/p/5805541.html
Copyright © 2020-2023  润新知