我花了几天的时间试图弄清楚如何解决这个问题,我即将与大家分享。我们将非常感谢您的帮助。
所以,这个XML代码调用了我正在处理的以下XSLT代码片段。
<xsl:for-each select="roomname">
<xsl:variable name="rmnmstX" select="@startx" />
<xsl:variable name="rmnmstY" select="@starty" />
<xsl:variable name="rmnmenX" select="@endx" />
<xsl:variable name="rmnmenY" select="@endy" />
<xsl:variable name="rmnmname" select="@name" />
<text x="{$rmnmstX*$ts}" y="{$rmnmstY*$ts}" style="font-family: Verdana;
font-size : 5;
stroke : #0000ff;
fill : #0000ff;
opacity : 0.65">DC ROOM</text>
</xsl:for-each>
此处,在SVG text 标记之间我已经包含了文本 DC ROOM 我希望传递最后一个变量的值 rmnmname 取代 DC ROOM 。我尝试通过编写 {$ rmnmname} 代替 DC ROOM 来做到这一点,但是当我测试调用此XSLT代码的XML文档时,我看到 {$ rmnmname} ,而不是我在XML代码中传递的名称属性的值。我操作以测试输出的XML代码部分如下所示:
<roomname endx="5" endy="3" id="RM0002" startx="2" starty="2" name="DC ROOM 1"></roomname>
我希望我能够把这个传达给你们。
答案 0 :(得分:1)
您可以使用xsl:value-of
将XSL变量的值输出为文本节点:
.....
0.65"><xsl:value-of select="$rmnmname"/></text>
.....
如果您不打算在其他任何地方使用相同的值,只需从源XML变量中获取值:
.....
0.65"><xsl:value-of select="@name"/></text>
.....