zoukankan      html  css  js  c++  java
  • 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字符串数据。

  • 相关阅读:
    python学习笔记-4-列表和元组
    迭代器 生成器, 可迭代对象以及应用场景
    mysql的创创建用户阶段 开启客户端登录和授权阶段
    初识mysql数据库
    拆目录
    日志编码
    数据库mysql的安装.启动和基础配置------windows版本
    协程
    线程锁 死锁现象 递归锁 信号量 条件定时器 队列 线程池
    网络线程
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/10928056.html
Copyright © 2011-2022 走看看