XML转Map类型 和 对象类型转XML字符串

来源:互联网 发布:萤石云无网络视频 编辑:程序博客网 时间:2024/06/07 04:11

XML转Map类型 和 对象类型转XML字符串

需要用到的jar包:dom4j-1.6.1.jar、xstreamGae.jar

/**     * XML转map类型     *      * @param request 通过doPost或doGet获得的request     * @return 经过转换后获得的Map类型数据     * @throws IOException     * @throws DocumentException     */    public static Map<String, Object> xmlToMap(HttpServletRequest request) throws IOException, DocumentException {        Map<String, Object> map = new HashMap<String, Object>();        SAXReader reader = new SAXReader();        InputStream ins = request.getInputStream();        Document document = reader.read(ins);        Element root = document.getRootElement();        map = (Map<String, Object>) getNodes(root);        ins.close();        return map;    }/**     * 消息对象转XML类型     * @param textMessage     * @return     */    public static String textMessageToXML(TextMessage textMessage) {        XStream xStream = new XStream();        xStream.alias("xml", TextMessage.class);        return xStream.toXML(textMessage);    }/**     * 递归遍历xml中的节点     *      * @param e XML的根节点     */    public static Object getNodes(Element element) {        Map<String, Object> root = new HashMap<String, Object>();        List<Element> elements = element.elements();        Map<String, Object> emap = new HashMap<String, Object>();        if (elements.size() > 0) {            for (Element e : elements) {                Object getNodes = getNodes(e);                root.put(e.getName(), getNodes);            }        } else {            return element.getTextTrim();        }        return root;    }
原创粉丝点击