2012-07-12 73 views
7

我想從大型xml文件生成圖形。它實際上是一個執行程序所產生的調用上下文樹。一個小的文件看起來像下面:從Xml數據生成圖形的工具

enter image description here

從這個XML我想有一個包含4個節點(對於每個方法的標籤的一個節點)的曲線圖,即主,了methodA,和的methodB方法C作爲樹顯示(從縮進)main()調用methodA,然後methodA調用methodB和methodC。所以,我希望有一個曲線圖「/圖像類似如下:

enter image description here

是否有任何開放源代碼工具,能爲我做到這一點? xml文件非常大(大約7 MB),所以圖形真的很大。我希望工具能夠正確處理這個問題。如果這個工具在linux上工作,那麼在windows上也是可以的。但首選是Linux。

我也可以考慮一些在java中的好庫,通過它我可以做到這一點。

謝謝。

回答

7

我的建議是yEd - 它不是開源的,而是免費的和跨平臺的(基於Java,並且在Linux上使用Oracle的JDK非常流暢)並使用開放標準進行輸入/輸出。它能夠以可視方式安排具有數千個節點的網絡,並具有可以讀取XML文件的導入工具。 由於沒有單一的最佳方式將xml文件導入到圖形結構中,因此可以關聯XSLT文件並將輸入轉換爲GraphML - yEd可以自動將XSLT文件應用於xml文件,然後計算一個很好的繪圖然後進行分析或出口。

Here指向某些XSL示例樣式表的鏈接,您可以將其用作基礎。

+0

感謝您的回覆塞巴斯蒂安。我下載了3.9.2。從你說的話來看,我似乎只需要將xml文件導入到yED中,並將它轉換爲GraphML,然後生成圖形。但我找不到將xml文件導入到yED的選項?你能告訴我我該怎麼做? – user523956 2012-07-13 10:00:24

+0

嗨塞巴斯蒂安,我有點不明白你在說什麼,「yEd可以自動將XSLT文件應用到你的xml文件,然後計算出一個很好的圖形,然後可以分析或導出。」你是說首先我應該將我的XML文件轉換爲GraphMl,然後將該graphml文件打開到yED中?我試圖打開示例graphml文件到yED但它不顯示適當的圖形?你能解釋一下我的意思嗎? – user523956 2012-07-13 11:46:54

+0

那麼,yED只接受xml格式。我們只需選擇File-Open並選擇文件類型中的xml + xss。圖應該正確顯示。我不知道爲什麼塞巴斯蒂安告訴把它全部轉換成GraphML。感謝塞巴斯蒂安提出了很好的工具。 – user523956 2012-07-13 18:16:42