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选项的对勾即可
随机推荐
- 运维笔记--线上服务器git环境配置
场景描述: 我们采用git去管理代码分支,本地开发环境,线上服务器多数情况下也会使用git去管理程序代码,那么新的一台服务器,如果指定了目标路径作为代码存放路径,该如何配置git环境, 以达到跟远程服 ...
- axios 设置headers token
axios({ method:"put", url:"....", data:{"action":"refreshToken&qu ...
- SDKMAN一个基于命令行界面的SDK用户环境管理程序
1.背景 使用过Python开发的朋友,应该了解到Python2和Python3语法的差异,有时候从网上下载了基于不同解释器的代码,要来回切换版本, 使用起来不是很方便,有时候甚至很麻烦.于是有人发明 ...
- (转)搭建Elasticsearch和kibana环境
搭建Elasticsearch和kibana环境 作者:IT云清 原文:https://blog.csdn.net/weixin_39800144/article/details/81162002 1 ...
- Prometheus监控实战day1-监控简介
福利 Prometheus监控实战PDF电子书下载 链接:https://pan.baidu.com/s/1QH4Kvha5g70OhYQdp4YsfQ 提取码:oou5 若你喜欢该资料,请购买该资料 ...
- 三层交换,单臂路由,vtp
- 瀚云平台kafka简单原理
客户端利用kafka 硬件 创建 productkey,cmd-productkey,conn-productkey为主题,代表设备数据,设备命令,设备事件. 客户端去订阅这三个主题 数据推送模拟器, ...
- Install Teamviewer on 14.04? [repost]
Ref: http://askubuntu.com/questions/453157/how-to-install-teamviewer-on-14-04 TeamViewer 是一款优秀的跨平台免费 ...
- SpringBoot加载自定义yml文件
自定义配置文件(跟SpringBoot的application.yml同一目录下): nlu-parse-rule: title: "NLU响应结果解析规则" desc: &quo ...
- 【剑指offer】数组在排序数组中出现的次数
题目描述 统计一个数字在排序数组中出现的次数. 分析:数组有序,采用二分查找无疑 两种方法,时间复杂度差不多,都是利用二分查找,不过统计k出现的次数有所不同而已 方法1:二分查找k,找到任意一个k的下 ...