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;
        }
    }
  • 相关阅读:
    HDU 4165 pills
    POJ 2125 Destroy The Graph
    POJ 2075 Tangled in Cables
    NYOJ Number SequenceProblem F
    PHP Eval研究笔记
    PHP 学习备忘(更新中)
    iOS学习笔记1 版本控制
    PHP全局缓存上栽的坑及其他【反面教材系列】
    iOS学习笔记2 Code Format
    iOS学习笔记4 垃圾回收初涉
  • 原文地址:https://www.cnblogs.com/bravolove/p/5805541.html
Copyright © 2011-2022 走看看