我有xml
的自定义图片格式 - 就像格式一样。我想明确地安排节点textview
和edge
。我的方法是使用XSL
到xml
的{{1}}转换。我是svg格式的新手,但是对svg
有点兴趣。我想知道这个任务是否已经像xsl
中的graphml to svg
功能那样解决了。是否有一些方便的方法来进行这样的转换?
yEd
我刚刚创建了可以将nodeviews转换为rects的示例<?xml version="1.0" encoding="windows-1251"?>
<project version="1.2">
<calc allowworktime="false" cutoff="0"/>
<sfc>
<graphview>
<nodeview idref="1">
<properties>
<color value="#FF000000" name="outline.color"/>
<rectangle left="165" top="85" right="195" bottom="115" name="bounds"/>
<color value="#FFFFFFFF" name="fill.color"/>
</properties>
</nodeview>
<edgeview idref="1">
<properties>
<color value="#FF000000" name="outline.color"/>
</properties>
</edgeview>
<textview>
<properties>
<color value="#00000000" name="outline.color"/>
<color value="#FF000000" name="label.font.color"/>
<integer value="8" name="label.font.size"/>
<rectangle left="176" top="63" right="194" bottom="78" name="bounds"/>
<string value="Tahoma" name="label.font.family"/>
<color value="#00000000" name="fill.color"/>
<integer value="0" name="label.font.style"/>
<string value="Ë1" name="label.text"/>
</properties>
</textview>
</graphview>
</sfc>
</project>
,但是当在inkscape中打开时,svg不会以某种方式呈现。
xslt
答案 0 :(得分:3)
样式表的主要问题是您创建的元素不在SVG名称空间中。您可以通过使SVG名称空间成为样式表的默认名称空间来轻松解决这个问题 - IOW,更改此内容:
xmlns:svg="http://www.w3.org/2000/svg"
为:
xmlns="http://www.w3.org/2000/svg"
另一件事是您的计算返回负高度,这在SVG中是不允许的。