缺少xml标记SVG文件(使用Graphviz dot.exe)

时间:2011-01-06 14:19:24

标签: xampp mediawiki graphviz dot

我的配置是:
- Windows Vista
- XAMPP 1.7.1
- 媒体维基+语义MW
- 使用Graphviz创建SVG的扩展程序 - Graphviz 2.26.3(安装目录c:\ graphviz .....)

一切正常但问题是:xml标签
'image xlink:href =“some_image.png”....' 在使用Media Wiki php页面创建的SVG文件中缺少。

这是通过以下方式完成的:
$ cmdlinesvg = wfEscapeShellArg($ cmd)。' -T svg'.wfEscapeShellArg($ src)。' -o'.wfEscapeShellArg($ svg);
$ WshShell =新COM(“WScript.Shell”);
$ WshShell-> Exec的($ cmdlinesvg);

我创建了一个执行相同命令行的批处理文件:

c:\ graphviz2.26.3 \ bin \ dot.exe -T svg filename.dot -o filename.svg

如果我手动运行它就可以了,并且会出现xml标记。

任何人都知道这是什么问题?提前谢谢。

1 个答案:

答案 0 :(得分:2)

解决

问题与.DOT文件中的图像路径有关。

如果手动运行命令行,则图像路径不必是完整路径。 你只能:shapefile =“some_image.png”

如果在php代码中运行命令,则图像路径必须是完整路径。 所以你必须:shapefile =“C:\ xampp ...... \ some_image.png”

出现另一个问题:生成的.SVG文件不显示图像。

如果右键单击并使用浏览器(即Firefox)打开.SVG文件,则图像正常。 但是,再一次,通过php页面,图像丢失了。 解决方案:编辑.SVG文件(这是XML)以更改路径。 在原始的.SVG文件中,我们有: 在修改后的.SVG文件中,我们必须:

PS:我正在做我的硕士论文,所以这是针对一个特定的问题,但我希望它能帮到某个人。