将随机xml文件转换为树形图

时间:2016-03-31 08:18:47

标签: xml awk tree diagram

我经常遇到需要将XML文件转换为树形图的情况。可以是我想要可视化的产品目录结构或托管对象模型。

只是想知道是否有人可以建议一个采用XML(或其他一些基于文本的输入)并生成这些图表的工具?我当然可以使用awk(etc)脚本将我的XML文件转换为几乎任何格式,因此它可以是CSV输入或几乎任何基于文本的。

干杯! 萨姆

1 个答案:

答案 0 :(得分:2)

xmlstarlet el -u whatever.xml|awk -F'/' 'BEGIN{print "digraph{"}{print $(NF-1)" -> "$NF}END{print"}"}'|dot -Tpng -o xml.png

display xml.png 

image of xml structure

<强>喂!
有效!

我希望你使用比我更小的xml文件。

xmlstarlet解析xml, el选项将xml元素显示为简单的xpath
-u标志消除了多余的兄弟元素
还有其他许多选项和改进 例如,包括值或属性 awk打印出dot标题,
然后对于文件中的每一行,
使用箭头分隔符打印每个xpath的最后两个元素 它对应于...... err,nigh-DAG中节点之间的边缘 以dot格式 请注意,如果没有特殊处理,这会在任何根节点上产生自我边缘 awk最终打印出作为页脚的右大括号。

dot
这是GraphViz库的一部分,
读取格式awk已将xmlstarlet输出转换为
并被告知写出一个png图像
可以用任何东西查看

注意:graphviz / dot和xmlstarlet都有很多选项

使用的xml文件可能是here(23 KB)