我经常遇到需要将XML文件转换为树形图的情况。可以是我想要可视化的产品目录结构或托管对象模型。
只是想知道是否有人可以建议一个采用XML(或其他一些基于文本的输入)并生成这些图表的工具?我当然可以使用awk(etc)脚本将我的XML文件转换为几乎任何格式,因此它可以是CSV输入或几乎任何基于文本的。
干杯! 萨姆
答案 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
<强>喂!强>
有效!
我希望你使用比我更小的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)