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选项的对勾即可
随机推荐
- 配置ogg从Oracle到PostgreSQL的同步复制json数据
标签:goldengate postgresql oracle json 测试环境说明 Oracle:Windows 8.1 + Oracle 12.2.0.1.0 + GoldenGate 12.3 ...
- Egret HTML5游戏开发指南
Egret HTML5游戏开发指南 下载地址:https://pan.baidu.com/s/1fuxllvmRhWXoWDwH4gxN9g 关注微信公众号获取提取码: 输入:egrt 获取提取码
- java 迭代的陷阱
/** * 关于迭代器,有一种常见的误用,就是在迭代的中间调用容器的删除方法. * 但运行时会抛出异常:java.util.ConcurrentModificationException * * 发生 ...
- 【翻译】FlinkCEP-Flink的复杂事件处理
本文翻译自官网:FlinkCEP - Complex event processing for Flink FlinkCEP是在Flink之上实现的复杂事件处理(CEP)库. 它使您可以检测无穷无尽的 ...
- 大数据 -- Hadoop集群环境搭建
首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...
- python进阶---列表、字典、集合相关操作
基本概念 列表 序列是python中一个基本的数据结构,每个元素都有一个索引index 操作 # 创建列表 list = [] # 修改列表 list[2] = 2001 # 删除列表 del lis ...
- Oracle 拆分列为多行 Splitting string into multiple rows in Oracle
=========================== The table is as follows: Name | Project | Error 108 test Err1, Err2, Err ...
- 【Docker学习之一】初始Docker
一.云计算的概念 PaaS(Platform-as-a-Service:平台即服务),把应用服务的运行和开发环境作为一种服务.SaaS(Software-as-a-Service),意思为软件即服务, ...
- (IO模型介绍,阻塞IO,非阻塞IO,多路复用IO,异步IO,IO模型比较分析,selectors模块,垃圾回收机制)
参考博客: https://www.cnblogs.com/xiao987334176/p/9056511.html 内容回顾 协程实际上是一个线程,执行了多个任务,遇到IO就切换 切换,可以使用yi ...
- [xsy3553]游戏
题意:交互题,交互库有长为$n$的$01$串$S$,你可以用字符串$T$询问$\sum\limits_{i=1}^n[S_i=T_i]$,要求用$1030$次询问问出$S$,$n=5000$ 首先我们 ...