用Python解析XMind

weixin_34342992發表於2018-09-21

本文來自網易雲社群

作者:孫聖翔


轉自:http://shengxiang.me/article/35/python-parse-xmind.html

XMind是畫思維腦圖很好的工具,正好組裡有個需要,是要將xmind畫的狀態圖,轉化成程式碼。

xmind的格式在這裡有介紹 https://code.google.com/p/xmind3/wiki/XMindFileFormat

而用來解析xmind的庫有個python的,還是官方出品的。不過真不愧是文件缺乏,花了我幾個小時看完它的原始碼,才會用了。

官方庫的地址,這個庫還有點問題,不能獲取relationships,我fork了一個改好了,已經提pr了,不過官方暫時還沒merge,暫時想用的,先用我fork的吧。


安裝方法

pip install git+https://github.com/codeskyblue/xmind-sdk-python.git

XMind好在是一堆XML檔案打包成的zip檔案。可以直接解壓出來,然後配合著程式碼看。舉例來說,一個sample.xmind檔案,重新命名成sample.zip,解壓出來,就變成了這樣的目錄結構

最有用的應該是那個content.xml了。推薦用Notepad XML開啟看。結構基本上像這個樣子, 有topic,有relationships。topic下面還有子topic。

relationship裡儲存的是,各個topic的關係。用的是topic的id標識的。 這裡主要說下,topic他分為兩類,attached和detached。我畫了張圖,應該可以很明顯的講兩者區分出來。

順手寫了一個解析程式dump.py

解析出來就是這個樣子了

Sheet : '畫布 1'
        RootTopic : Attached-Root-Topic                AttachedSubTopic : attached-topic1                DetachedSubTopic : Detached-topic1                DetachedSubTopic : Detached-topic2Relation: [Detached-topic2] --> [Detached-topic1]

好了就寫這麼多了,喜歡的記得收藏。


網易雲免費體驗館,0成本體驗20+款雲產品!

更多網易研發、產品、運營經驗分享請訪問網易雲社群


相關文章:
【推薦】 從風控的角度解析如何防止客戶刷單

相關文章