dom4j 解析字符串成树形结构
引入maven依赖:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
public Map<String, Object> transferXml(Map<String, Object> result) {
        String content = String.valueOf(result.get("ltc_content"));
        Map<String, Object> data = new HashMap<>();
        Document document = null;
        try {
            document = DocumentHelper.parseText(content);
            Element root = document.getRootElement();
            data = recursiveXml(root);
            result.put("success", true);
            result.put("msg", "处理成功");
            result.put("data", data);
        } catch (Exception e) {
            e.printStackTrace();
            result.put("success", false);
            result.put("msg", "xml格式错误");
        }
        return result;
    }
public Map<String, Object> recursiveXml(Element element) throws Exception {
        Map<String, Object> result = new HashMap<>();
        String textTrim = element.getTextTrim();
        result.put("text", textTrim);
        //处理属性
        Map<String, Object> attribute = new HashMap<>();
        List<Attribute> attributeList = element.attributes();
        for (Attribute attr : attributeList) {
            attribute.put(attr.getName(), attr.getValue());
        }
        result.put("attribute", attribute);
        //标签名
        result.put("label", element.getName());
        //子节点
        List<Map<String, Object>> childrenList = new ArrayList<>();
        List<Element> elementList = element.elements();
        for (Element ele : elementList) {
            Map<String, Object> child = recursiveXml(ele);
            childrenList.add(child);
        }
        result.put("children", childrenList);
        return result;
    }
content为xml字符串数据。
dom4j 解析字符串成树形结构的更多相关文章
- javascript将平行的拥有上下级关系的数据转换成树形结构
		转换函数 var Littlehow = {}; /** * littlehow 2019-05-15 * 平行数据树形转换器 * @type {{format: tree.format, sort: ... 
- c# List列表数据转换成树形结构
		把List列表结构 转换成树形结构 /// <summary> /// 构造树形Json /// </summary> public static class TreeJson ... 
- 使用js将后台返回的数据转换成树形结构
		将类似如下数据转换成树形的数据: [ { id: 1, name: '1', }, { id: 2, name: '1-1', parentId: 1 }, { id: 3, name: '1-1-1 ... 
- 记一则 Lambda内递归调用方法将集合对象转换成树形结构
		public dynamic GetDepartments(string labID) { List<int> usedIDs = new List<int>(); //缓存已 ... 
- 如何使用ABAP代码反序列化JSON字符串成ABAP结构
		假设我有这个JSON字符串如下图所示: 我的任务是解析出上图黑色方框里的几个字段,比如ObjectID, ETag, BuyerID, DateTime, ID, Name等等,把它们的值存储到对应A ... 
- 【原创】解决jquery在ie中不能解析字符串类型xml结构的xml字符串的问题
		$.fn.extend({ //此方法解决了ie中jquery不识别非xml的类型的xml字符串的问题 tony tan findX: function (name) { if (this & ... 
- Word排版成树形结构技巧
		初始文字 A A1 A2 B1 B1 B2 C C1 希望效果 关健设置 
- Java数据封装成树形结构,多级
		参考地址:https://blog.csdn.net/chendu500qiang/article/details/91493147 1.实体类 @data public class PublishS ... 
- idea目录结构子目录在父目录后面跟着改成树形结构
		1.点击项目窗口的设置按钮 2.取消Compact Middle Packages选项的对勾即可 
随机推荐
- Python之快速排序代码
			def quicksort(array): less = [] greater = [] if len(array) <= 1: return array pivot = array.pop() ... 
- visual studio制作代码片段
			使用 Visual Studio 的代码片段功能,我们可以快速根据已有模板创建出大量常用的代码出来.ReSharper 已经自带了一份非常好用的代码片段工具,不过使用 ReSharper 创建出来的代 ... 
- 内存自动清理.sql
			--清除存储过程缓存 DBCC FREEPROCCACHE --注:方便记住关键字 FREEPROCCACHE可以拆解成 FREE(割舍,清除) PROC(存储过程关键字简写),CACHE(缓存) - ... 
- LeetCode_463. Island Perimeter
			463. Island Perimeter Easy You are given a map in form of a two-dimensional integer grid where 1 rep ... 
- dotnet core 项目脚手架这种小事嘛...
			dotnet core脚手架批处理.bat @echo 请修改批处理文件名后,如:Example.Core ,注释掉goto end,再执行脚本 pause goto end ::goto end s ... 
- 常用的js片段
			1.检查是否为微信浏览器 function isWxBrowser() { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/Micr ... 
- [Mobi] cordova requirements,Exception in thread "main" java.lang.NoClassDefFoundError
			Cordova App Preparation https://quasar.dev/quasar-cli/developing-cordova-apps/preparation $ cordova ... 
- Arch Linux 启用 MTU 探测
			最近在家里经常遇到 ssh 超时的问题,一开始也没太当回事,感觉是网络不稳定导致的,但是后来慢慢的发现这种超时问题只会出现在跟 ssh 相关的程序中,例如 git.ssh.这成功的引起了我的注意,于是 ... 
- Difference between java.lang.RuntimeException and java.lang.Exception
			In Java, there are two types of exceptions: checked exceptions and un-checked exceptions. A checked ... 
- [转] 浅谈 OpenResty
			一.前言 我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开 ... 
