2

我正在尝试将选择值的结果传递给另一个选择值的参数。这是带有伪语句的完整代码(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>
4

1 回答 1

1

我正在尝试将选择值的结果传递给另一个选择值的参数。

        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" />

解释:正确使用 XSLTcurrent()函数。

于 2012-04-23T01:10:56.533 回答