json(map)与xml的转化

来源:互联网 发布:淘宝母婴店图片装修 编辑:程序博客网 时间:2024/06/05 16:46

xml转map

import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;/** * xml工具类 * @author miklchen * */public class XMLUtil {    /**     * 解析xml,返回第一级元素键值对。如果第一级元素有子节点,则此节点的值是子节点的xml数据。     * @param strxml     * @return     * @throws JDOMException     * @throws IOException     */    public static Map doXMLParse(String strxml) throws JDOMException, IOException {        strxml = strxml.replaceFirst("encoding=\".*\"", "encoding=\"UTF-8\"");        if(null == strxml || "".equals(strxml)) {            return null;        }        Map m = new HashMap();        InputStream in = new ByteArrayInputStream(strxml.getBytes("UTF-8"));        SAXBuilder builder = new SAXBuilder();        Document doc = builder.build(in);        Element root = doc.getRootElement();        List list = root.getChildren();        Iterator it = list.iterator();        while(it.hasNext()) {            Element e = (Element) it.next();            String k = e.getName();            String v = "";            List children = e.getChildren();            if(children.isEmpty()) {                v = e.getTextNormalize();            } else {                v = XMLUtil.getChildrenText(children);            }            m.put(k, v);        }        //关闭流        in.close();        return m;    }    /**     * 获取子结点的xml     * @param children     * @return String     */    public static String getChildrenText(List children) {        StringBuffer sb = new StringBuffer();        if(!children.isEmpty()) {            Iterator it = children.iterator();            while(it.hasNext()) {                Element e = (Element) it.next();                String name = e.getName();                String value = e.getTextNormalize();                List list = e.getChildren();                sb.append("<" + name + ">");                if(!list.isEmpty()) {                    sb.append(XMLUtil.getChildrenText(list));                }                sb.append(value);                sb.append("</" + name + ">");            }        }        return sb.toString();    }   }

map转xml

public static String ArrayToXml(HashMap<String, String> arr) {        String xml = "<xml>";        Iterator<Entry<String, String>> iter = arr.entrySet().iterator();        while (iter.hasNext()) {            Entry<String, String> entry = iter.next();            String key = entry.getKey();            String val = entry.getValue();            if (IsNumeric(val)) {                xml += "<" + key + ">" + val + "</" + key + ">";            } else                xml += "<" + key + "><![CDATA[" + val + "]]></" + key + ">";        }        xml += "</xml>";        return xml;    }    public static boolean IsNumeric(String str) {        if (str.matches("\\d *")) {            return true;        } else {            return false;        }    }
0 0
原创粉丝点击