打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
XML 转 fastJSON
import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;/** * xml工具类 * @author sleep * @date 2016-09-13 */public class XmlTool {    /**     * String 转 org.dom4j.Document     * @param xml     * @return     * @throws DocumentException     */    public static Document strToDocument(String xml) throws DocumentException {        return DocumentHelper.parseText(xml);    }    /**     * org.dom4j.Document 转  com.alibaba.fastjson.JSONObject     * @param xml     * @return     * @throws DocumentException     */    public static JSONObject documentToJSONObject(String xml) throws DocumentException {        return elementToJSONObject(strToDocument(xml).getRootElement());    }    /**     * org.dom4j.Element 转  com.alibaba.fastjson.JSONObject     * @param node     * @return     */    public static JSONObject elementToJSONObject(Element node) {        JSONObject result = new JSONObject();        // 当前节点的名称、文本内容和属性        List<Attribute> listAttr = node.attributes();// 当前节点的所有属性的list        for (Attribute attr : listAttr) {// 遍历当前节点的所有属性            result.put(attr.getName(), attr.getValue());        }        // 递归遍历当前节点所有的子节点        List<Element> listElement = node.elements();// 所有一级子节点的list        if (!listElement.isEmpty()) {            for (Element e : listElement) {// 遍历所有一级子节点                if (e.attributes().isEmpty() && e.elements().isEmpty()) // 判断一级节点是否有属性和子节点                    result.put(e.getName(), e.getTextTrim());// 沒有则将当前节点作为上级节点的属性对待                else {                    if (!result.containsKey(e.getName())) // 判断父节点是否存在该一级节点名称的属性                        result.put(e.getName(), new JSONArray());// 没有则创建                    ((JSONArray) result.get(e.getName())).add(elementToJSONObject(e));// 将该一级节点放入该节点名称的属性对应的值中                }            }        }        return result;    }}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
fastJson
Java的Json解析包FastJson使用
java xml转map map转xml 带属性
使用dom4j读取xml文档的四种方式
org.dom4j.DocumentException : 1 字节的 UTF
一款探测fastjson漏洞的BurpSuite插件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服