# XMind
![mind_mapping](https://raw.githubusercontent.com/zhuifengshen/xmind/master/images/xmind.png)
**[XMind](https://github.com/zhuifengshen/xmind)** 是基于 Python 实现,提供了对 [XMind思维导图](https://www.xmind.cn/)进行创建、解析、更新的一站式解决方案!
### 一、安装方式
```
pip3 install XMind
or
pip3 install xmind
```
### 二、版本升级
```
pip3 install -U XMind
```
### 三、使用方式
#### 1、创建XMind文件
```
def gen_my_xmind_file():
# 1、如果指定的XMind文件存在,则加载,否则创建一个新的
workbook = xmind.load("my.xmind")
# 2、获取第一个画布(Sheet),默认新建一个XMind文件时,自动创建一个空白的画布
sheet1 = workbook.getPrimarySheet()
# 对第一个画布进行设计完善,具体参照下一个函数
design_sheet1(sheet1)
# 3、创建第二个画布
gen_sheet2(workbook, sheet1)
# 4、保存(如果指定path参数,另存为该文件名)
xmind.save(workbook, path='test.xmind')
```
![first sheet](https://raw.githubusercontent.com/zhuifengshen/xmind/master/images/first_sheet.png)
```
def design_sheet1(sheet1):
# ***** 第一个画布 *****
sheet1.setTitle("first sheet") # 设置画布名称
# 获取画布的中心主题,默认创建画布时会新建一个空白中心主题
root_topic1 = sheet1.getRootTopic()
root_topic1.setTitle("root node") # 设置主题名称
# 创建一个子主题,并设置其名称
sub_topic1 = root_topic1.addSubTopic()
sub_topic1.setTitle("first sub topic")
sub_topic2 = root_topic1.addSubTopic()
sub_topic2.setTitle("second sub topic")
sub_topic3 = root_topic1.addSubTopic()
sub_topic3.setTitle("third sub topic")
sub_topic4 = root_topic1.addSubTopic()
sub_topic4.setTitle("fourth sub topic")
# 除了新建子主题,还可以创建自由主题(注意:只有中心主题支持创建自由主题)
detached_topic1 = root_topic1.addSubTopic(topics_type=TOPIC_DETACHED)
detached_topic1.setTitle("detached topic")
detached_topic1.setPosition(0, 30)
# 创建一个子主题的子主题
sub_topic1_1 = sub_topic1.addSubTopic()
sub_topic1_1.setTitle("I'm a sub topic too")
```
![second sheet](https://raw.githubusercontent.com/zhuifengshen/xmind/master/images/second_sheet.png)
```
def gen_sheet2(workbook, sheet1):
# ***** 设计第二个画布 *****
sheet2 = workbook.createSheet()
sheet2.setTitle("second sheet")
# 获取画布的中心主题
root_topic2 = sheet2.getRootTopic()
root_topic2.setTitle("root node")
# 使用另外一种方法创建子主题
topic1 = TopicElement(ownerWorkbook=workbook)
# 给子主题添加一个主题间超链接,通过指定目标主题ID即可,这里链接到第一个画布
topic1.setTopicHyperlink(sheet1.getID())
topic1.setTitle("redirection to the first sheet")
topic2 = TopicElement(ownerWorkbook=workbook)
topic2.setTitle("topic with an url hyperlink")
# 给子主题添加一个URL超链接
topic2.setURLHyperlink("https://github.com/zhuifengshen/xmind")
topic3 = TopicElement(ownerWorkbook=workbook)
topic3.setTitle("third node")
# 给子主题添加一个备注(快捷键F4)
topic3.setPlainNotes("notes for this topic")
topic3.setTitle("topic with \n notes")
topic4 = TopicElement(ownerWorkbook=workbook)
# 给子主题添加一个文件超链接
topic4.setFileHyperlink("logo.png")
topic4.setTitle("topic with a file")
topic1_1 = TopicElement(ownerWorkbook=workbook)
topic1_1.setTitle("sub topic")
# 给子主题添加一个标签(目前XMind软件仅支持添加一个,快捷键)
topic1_1.addLabel("a label")
topic1_1_1 = TopicElement(ownerWorkbook=workbook)
topic1_1_1.setTitle("topic can add multiple markers")
# 给子主题添加两个图标
topic1_1_1.addMarker(MarkerId.starBlue)
topic1_1_1.addMarker(MarkerId.flagGreen)
topic2_1 = TopicElement(ownerWorkbook=workbook)
topic2_1.setTitle("topic can add multiple comments")
# 给子主题添加一个批注(评论)
topic2_1.addComment("I'm a comment!")
topic2_1.addComment(content="Hello comment!", author='devin')
# 将创建好的子主题添加到其父主题下
root_topic2.addSubTopic(topic1)
root_topic2.addSubTopic(topic2)
root_topic2.addSubTopic(topic3)
root_topic2.addSubTopic(topic4)
topic1.addSubTopic(topic1_1)
topic2.addSubTopic(topic2_1)
topic1_1.addSubTopic(topic1_1_1)
# 给中心主题下的每个子主题添加一个优先级图标
topics = root_topic2.getSubTopics()
for index, topic in enumerate(topics):
topic.addMarker("priority-" + str(index + 1))
# 添加一个主题与主题之间的联系
sheet2.createRelationship(topic1.getID(), topic2.getID(), "relationship test")
```
具体代码参考:[create_xmind.py](https://github.com/zhuifengshen/xmind/blob/master/example/create_xmind.py)
#### 2、解析XMind文件
##### (1) 将XMind文件转换为Dict数据 / JSON数据
```
import xmind
workbook = xmind.load('demo.xmind')
print(workbook.getData())
print(workbook.to_prettify_json())
Output:
[ # 画布列表
{ # 第1个画布数据
"id": "2cc3b068922063a81a20029655", # 画布ID
"title": "first sheet", # 画布名称
"topic": { # 中心主题
"id": "2cc3b06892206f95288e487b6c", # 主题ID
"link": null, # 超链接信息
"title": "root node", # 主题名称
"note": null, # 备注信息
"label": null, # 便签信息
"comment": null, # 批注(评论)信息
"markers": [], # 图标列表
"topics": [ # 子主题列表
{
"id": "2cc3b06892206c816e1cb55ddc", # 子主题ID
"link": null,
"title": "first sub topic",
"note": null,
"label": null,
"comment": null,
"markers": [],
"topics": [ # 子主题下的子主题列表
{
"id": "b0ed74214dbca939935b981906",
"link": null,
"title": "I'm a sub topic too",
"note": null,
"label": null,
"comment": null,
"markers": []
}
]
},
{
"id": "b0ed74214dbca693b947ef03fa",
"link": null,
"title": "second sub topic",
"note": null,
"label": null,
"comment": null,
"markers": []
},
{
"id": "b0ed74214dbca1fe9ade911b94",
"link": null,
"title": "third sub topic",
"note": null,
"label": null,
"comment": null,
"markers": []
},
{
"id": "b0ed74214dbcac00c0eb368b53",
"link": null,
"title": "fourth sub topic",
没有合适的资源?快使用搜索试试~ 我知道了~
Python-XMind思维导图创建解析更新的一站式解决方案Python
共46个文件
py:24个
png:12个
xmind:3个
需积分: 5 17 下载量 70 浏览量
2019-08-10
19:06:22
上传
评论
收藏 2.14MB ZIP 举报
温馨提示
XMind 是基于 Python 实现,提供了对 XMind 思维导图进行创建、解析、更新的一站式解决方案!
资源推荐
资源详情
资源评论
收起资源包目录
Python-XMind思维导图创建解析更新的一站式解决方案Python.zip (46个子文件)
xmind-master
xmind
__about__.py 418B
utils.py 3KB
core
comments.py 6KB
labels.py 729B
title.py 332B
topic.py 15KB
const.py 2KB
saver.py 7KB
relationship.py 3KB
__init__.py 9KB
markerref.py 5KB
workbook.py 8KB
styles.py 3KB
notes.py 2KB
sheet.py 4KB
loader.py 3KB
position.py 681B
mixin.py 2KB
__init__.py 734B
images
Xmind-Sdk.png 247KB
xmind_native_elements.png 85KB
second_sheet.png 45KB
xmind_file_structure.png 107KB
xmind.png 600KB
pypi_upload.png 47KB
first_sheet.png 27KB
testcase_preview.png 165KB
testlink.png 241KB
webtool.png 188KB
zentao.png 321KB
example
update_xmind.py 1KB
__init__.py 0B
logo.png 43KB
create_xmind.py 4KB
demo.xmind 4KB
parse_xmind.py 2KB
LICENSE 1KB
setup.py 3KB
README.md 23KB
docs
content-demo.xml 4KB
xmind_file_structure.xmind 118KB
comments-demo.xml 385B
xmind_native_elements.xmind 96KB
README_en.md 2KB
styles-demo.xml 8KB
.gitignore 141B
共 46 条
- 1
资源评论
weixin_39840515
- 粉丝: 448
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功