我有一些XML文档,它们被大大简化了,可以描述为:
<someobject id="mykey">
<relatedobject id="hiskey"/>
<relatedobject id="herkey"/>
</someobject>
<someobject ...有什么简单的方法可以制作这样的图表,显示物体在2D空间中放置得很好,它们之间有线条?
我非常熟悉XSLT和Xpath,但我更喜欢不需要从头开始编写程序的解决方案。对Saxon进行几个命令行调用,然后一个图形生成程序就可以了。对于任何可以完全使用在线托管工具完成的事情,都可以获得加分。实时(例如javascript),交互式图表的额外加分。
发布于 2010-12-09 18:21:21
这里有一个快速的解决方案,可以使用GraphViz作为suggested by Philipp直接粘贴到shell上。这样就可以利用xmlstarlet避免从头开始编写XSLT样式表。
( echo "graph G {"
xmlstarlet sel -t -m "//someobject/relatedobject" \
-v "concat(../@id, ' -- ', @id, '
')" input.xml
echo "}" ) | dotty -示例输出:

编辑后添加了:,对于额外的加分,仅使用在线工具here的交互式SVG图。这利用了Dracula Graph Library和W3C XSLT Service。这需要创建一个XSLT stylesheet (直接改编自Dracula Graph Library的在线示例)。用于转换的输入文档可以在here中找到。
发布于 2010-12-09 12:50:05
我建议使用GraphViz:您可以使用XSLT创建一个文本文件,它描述了您想要的图形。有关快速概述,请参阅this example。
我不太熟悉了,但我觉得
graph G {
mykey -- hiskey
mykey -- herkey
}应该能胜任这项工作。
发布于 2010-12-09 17:24:20
这不是一个简单的问题。我很久以前编写了一个程序来集群XML文档,但是显示的是网格而不是图形。不过,如果你要实现一些东西,你可能会对代码感兴趣。此外,您还可以将关键字赋予文档,这些关键字以及用于对文档进行聚类的链接也将用于命名得到的聚类。当有许多文档时,网格显示可能比图形显示更好。
http://media4.obspm.fr/outils/clustering/doc_en.html
https://stackoverflow.com/questions/4394787
复制相似问题