zoukankan      html  css  js  c++  java
  • Xml 和 Map的相互转换工具类

    public class XmlUtils {                                                                                                                            
        
        /** <一句话功能简述>
         * <功能详细描述>request转字符串
         * @param request
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static String parseRequst(HttpServletRequest request){
            String body = "";
            try {
                ServletInputStream inputStream = request.getInputStream(); 
                BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
                while(true){
                    String info = br.readLine();
                    if(info == null){
                        break;
                    }
                    if(body == null || "".equals(body)){
                        body = info;
                    }else{
                        body += info;
                    }
                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }            
            return body;
        }
        
        public static String parseXML(SortedMap<String, String> parameters) {
            StringBuffer sb = new StringBuffer();
            sb.append("<xml>");
            Set es = parameters.entrySet();
            Iterator it = es.iterator();
            while (it.hasNext()) {
                Map.Entry entry = (Map.Entry)it.next();
                String k = (String)entry.getKey();
                String v = (String)entry.getValue();
                if (null != v && !"".equals(v) && !"appkey".equals(k)) {
                    sb.append("<" + k + ">" + parameters.get(k) + "</" + k + ">
    ");
                }
            }
            sb.append("</xml>");
            return sb.toString();
        }
    
        /**
         * 从request中获得参数Map,并返回可读的Map
         * 
         * @param request
         * @return
         */
        public static SortedMap getParameterMap(HttpServletRequest request) {
            // 参数Map
            Map properties = request.getParameterMap();
            // 返回值Map
            SortedMap returnMap = new TreeMap();
            Iterator entries = properties.entrySet().iterator();
            Map.Entry entry;
            String name = "";
            String value = "";
            while (entries.hasNext()) {
                entry = (Map.Entry) entries.next();
                name = (String) entry.getKey();
                Object valueObj = entry.getValue();
                if(null == valueObj){
                    value = "";
                }else if(valueObj instanceof String[]){
                    String[] values = (String[])valueObj;
                    for(int i=0;i<values.length;i++){
                        value = values[i] + ",";
                    }
                    value = value.substring(0, value.length()-1);
                }else{
                    value = valueObj.toString();
                }
                returnMap.put(name, value.trim());
            }
            returnMap.remove("method");
            return returnMap;
        }
        
        /**
         * 转XMLmap
         * @author  
         * @param xmlBytes
         * @param charset
         * @return
         * @throws Exception
         */
        public static Map<String, String> toMap(byte[] xmlBytes,String charset) throws Exception{
            SAXReader reader = new SAXReader(false);
            InputSource source = new InputSource(new ByteArrayInputStream(xmlBytes));
            source.setEncoding(charset);
            Document doc = reader.read(source);
            Map<String, String> params = XmlUtils.toMap(doc.getRootElement());
            return params;
        }
        
        /**
         * 转MAP
         * @author  
         * @param element
         * @return
         */
        public static Map<String, String> toMap(Element element){
            Map<String, String> rest = new HashMap<String, String>();
            List<Element> els = element.elements();
            for(Element el : els){
                rest.put(el.getName().toLowerCase(), el.getTextTrim());
            }
            return rest;
        }
        
        public static String toXml(Map<String, String> params){
            StringBuilder buf = new StringBuilder();
            List<String> keys = new ArrayList<String>(params.keySet());
            Collections.sort(keys);
            buf.append("<xml>");
            for(String key : keys){
                buf.append("<").append(key).append(">");
                buf.append("<![CDATA[").append(params.get(key)).append("]]>");
                buf.append("</").append(key).append(">
    ");
            }
            buf.append("</xml>");
            return buf.toString();
        }
    }
  • 相关阅读:
    个人冲刺二(7)
    个人冲刺二(6)
    个人冲刺二(5)
    个人冲刺二(4)
    对称二叉树 · symmetric binary tree
    108 Convert Sorted Array to Binary Search Tree数组变成高度平衡的二叉树
    530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值
    pp 集成工程师 mism师兄问一问
    17. Merge Two Binary Trees 融合二叉树
    270. Closest Binary Search Tree Value 二叉搜索树中,距离目标值最近的节点
  • 原文地址:https://www.cnblogs.com/yydxh/p/13496298.html
Copyright © 2011-2022 走看看