【发布时间】:2020-06-16 22:17:25
【问题描述】:
我正在尝试访问与 svg 结合的 XSLT 文件中的变量。参数是我要绘制的扑克牌值对应的符号和数字。用xslt:for-each抽一张牌后,一旦参数正确,扑克牌抽得正确,但用了两次后,svg的使用使用了与xslt:for-each第一次迭代时相同的变量值,从而生成相同的 grafic 多次不改变变量值,但在 svg 的使用之外,变量值与内部不同。
<!-- right variable values outside the definition !-->
<text font-size="50">
<xsl:value-of select="$symbol"/>
</text>
<text font-size="50">
<xsl:value-of select="$number"/>
</text>
<use href="#draw_card""/>
<defs>
<symbol id="draw_card">
<!-- wrong variable values inside !-->
<text font-size="50"><xsl:value-of select="$symbol"/></text>
<text font-size="50"><xsl:value-of select="$number"/></text>
</symbol>
</defs>
如何更改我的代码,使定义中的 xslt 变量保持不变,并且我可以用这些新值绘制我的扑克牌?
【问题讨论】:
-
如果您向我们展示最小但完整的示例来重现问题,这将有所帮助。如果您显示的 sn-p 周围有一个
for-each,那么您似乎会多次声明具有相同 iddraw_card的符号,而id值应该是唯一的。所以也许你想要<use href="#draw_card_{position()}"/>和<symbol id="draw_card_[position()}">...这样的东西。