2

value-of select の結果を別の value-of 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>
4

1 に答える 1

1

selectの値の結果をselectの別の値のパラメーターに渡そうとしています。

        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 に答える