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();
        }
    }
  • 相关阅读:
    SVN资料库转移-----dump和load
    windows Server 2003修改远程连接限制
    oracle定时任务
    Oacle常用语句
    决策树
    Logistic回归
    Matplotlab绘图基础
    基本术语
    看懂执行并优化
    数据分析方法论
  • 原文地址:https://www.cnblogs.com/yydxh/p/13496298.html
Copyright © 2011-2022 走看看