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;
        }
    }
  • 相关阅读:
    Qt QListWidgetItem的添加与删除
    Qt QListWidget中实现每个单元项显示文字在上图片在下
    Qt QListWiget的Item的icon大小设置
    Qt 控制Widget窗体大小方法
    装饰模式(Decorator)C++实现
    C++ 结构型模式
    Qt 创建一个excel文件(通过save as 方法)
    深度学习之 YOLO v1,v2,v3详解
    Qt excel 操作使用说明
    “云钉一体”背后,阿里云希望改变什么?
  • 原文地址:https://www.cnblogs.com/bravolove/p/5805541.html
Copyright © 2011-2022 走看看