当前位置: 首页 > article >正文

【XML】xml转Freemind思维导图

  1. 通过以下代码可以将xml转换为Freemind软件的思维导图,方便查看各数据结构
  2. 该代码运行需要安装lxml库
pip install lxml
  1. 使用方式示例
python xml2mm.py *.xml *.mm
  1. 转化完成示例,使用Freemind软件打开,该软件在ubuntu的软件商店中即可下载
  2. python代码如下
import sys
from lxml import etree as et
from xml.sax.saxutils import quoteattr


class FreeMindCreator:

    def __init__(self, outfile=sys.stdout):
        self.outfile = outfile
        self.line_counter = 1
        self.mmlines = [
            '<map version="1.0.1">\n',
            "<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->\n",
        ]

    def start(self, tag, attrib):
        attrib = " ".join([f"{key}={value}" for key, value in attrib.items()])
        blank, space = "", " "
        mmattr = quoteattr(tag + (space if attrib.strip() else blank) + attrib.strip())
        mmtext = f'<node ID="ID_{self.line_counter}" TEXT={mmattr}>'
        self.mmlines.append(mmtext + "\n")
        self.line_counter += 1

    def end(self, tag):
        self.mmlines.append("</node>\n")

    def data(self, data):
        data = data.strip()
        if data:
            self.mmlines[-1] = self.mmlines[-1][:-3] + " text='" + data + "'\">"

    def close(self):
        self.mmlines.append("</map>")
        with open(self.outfile, "w") as of:
            of.writelines(self.mmlines)


if __name__ == "__main__":
    infile = sys.argv[1]
    outfile = sys.argv[2]
    parser = et.XMLParser(target=FreeMindCreator(outfile))
    print("Parser initialized, Parsing xml...")
    _ = et.parse(infile, parser)
    print(f"Parse complete. Generated {outfile}")

http://www.kler.cn/a/272268.html

相关文章:

  • 【Java】十大排序
  • 【Unity入门】详解Unity中的射线与射线检测
  • 流媒体学习之路(WebRTC)——FEC逻辑分析(6)
  • 51单片机与ARM单片机的区别
  • Jest:JavaScript的单元测试利器
  • 【GPT-SOVITS-01】源码梳理
  • 避免内存泄漏及泄漏后的排查方法【C++】
  • Redis 常用数据类型,各自的使用场景是什么?
  • CentOS 7 编译安装 Git
  • AI基础知识(2)--决策树,神经网络
  • 编程语言的生态系统
  • 一种动态联动的实现方法
  • 使用gitee自动备份文件
  • 【C语言】指针基础知识(一)
  • 深度强化学习01
  • ubuntu18.04安装ffmpeg
  • OGRE Pittfals Design proposal for Ogre 2.0
  • Day67:WEB攻防-Java安全JNDIRMILDAP五大不安全组件RCE执行不出网
  • 代码随想录Day48:买卖股票的最佳时机、买卖股票的最佳时机II
  • 前端基础篇-深入了解 JavaScript(JSON、BOM、DOM 和事件监听)