• 实体类与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;
        }

    }

  • 相关阅读:
    【leetcode】1630. Arithmetic Subarrays
    【leetcode】1629. Slowest Key
    【leetcode】1624. Largest Substring Between Two Equal Characters
    【leetcode】1620. Coordinate With Maximum Network Quality
    【leetcode】1619. Mean of Array After Removing Some Elements
    【leetcode】1609. Even Odd Tree
    【leetcode】1608. Special Array With X Elements Greater Than or Equal X
    【leetcode】1603. Design Parking System
    【leetcode】1598. Crawler Log Folder
    Java基础加强总结(三)——代理(Proxy)Java实现Ip代理池
  • 原文地址:https://www.cnblogs.com/xunfang123/p/4169931.html
Copyright © 2020-2023  润新知