XSLT使用value-of inside select(嵌套值-select)

时间:2012-04-23 00:28:48

标签: xslt

我试图将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>

1 个答案:

答案 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() 功能。