我试图将select-value的结果传递给select的另一个值的参数。 这是伪语句(myVar)
的完整代码<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" />
<xsl:variable name="data" select="document('user.xml')/user/data" />
<xsl:template match="/">
<xsl:for-each select="form/field">
<p class="field">
<xsl:attribute name="style">left:<xsl:value-of
select="left" />;top:<xsl:value-of select="top" />;
</xsl:attribute>
myVar = <xsl:value-of select="text" />
<xsl:value-of select="$data[@key = {@myVar}]/@value" />
</p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
我试图将select-value的结果传递给参数 另一个选择值。
myVar = <xsl:value-of select="text" /> <xsl:value-of select="$data[@key = {@myVar}]/@value" />
以上行在语法上不正确 - select
是唯一不接受AVT的属性。
为了达到想要的效果,请用以下内容替换上述内容:
<xsl:value-of select="$data[@key = current()/text]/@value" />
解释:正确使用XSLT current()
功能。