zoukankan      html  css  js  c++  java
  • 实体类与CDATA类型的xml的转换的工具类

    package com.wanhua.util;

    import java.io.StringReader;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.input.SAXBuilder;
    import org.xml.sax.InputSource;

    import com.thoughtworks.xstream.XStream;
    import com.wanhua.weixin.model.ReceEvent;
    import com.wanhua.weixin.model.ReplyMsg;

    /**
     * 实体类与CDATA类型的xml的转换的工具类
     *
     * @author w_xfpenga
     *
     *         2014-11-27
     */
    public class CDATA2Text {
        /**
         * 将javaBean对象转成CDATA类型的XML
         *
         * @param obj
         * @return
         * @param Object
         *
         * @return String
         */
        public static String Object2CDATA(Object obj) {

            Xstream2CDATA xstream2cdata = new Xstream2CDATA();
            XStream xStream = xstream2cdata.createXstream();

            xStream.autodetectAnnotations(true);
            String xml = xStream.toXML(obj);
            return xml;
        }

        /**
         * 将CDATA类型的xml转成Map
         *
         * @param xml
         * @return
         * @param xml
         *
         * @return Map
         */
        @SuppressWarnings({ "unchecked", "unused" })
        public static Map CDATA2Map(String xml) {
            Map retMap = new HashMap();
            try {
                StringReader read = new StringReader(xml);
                // 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
                InputSource source = new InputSource(read);
                // 创建一个新的SAXBuilder
                SAXBuilder sb = new SAXBuilder();
                // 通过输入源构造一个Document
                Document doc = (Document) sb.build(source);
                Element root = doc.getRootElement();// 指向根节点
                List<Element> es = root.getChildren();
                if (es != null && es.size() != 0) {
                    for (Element element : es) {
                        retMap.put(element.getName(), element.getValue());
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return retMap;
        }

    }

  • 相关阅读:
    连载日记
    自我介绍
    test0710 二分专题
    test0709 搜索专题
    test0705
    test0704
    [题解] [HNOI2015]落忆枫音
    test0606
    test0523
    备份
  • 原文地址:https://www.cnblogs.com/xunfang123/p/4169931.html
Copyright © 2011-2022 走看看