XSL使用变量来获取属性

时间:2014-07-16 09:06:25

标签: xslt

我有一个输出选项列表的代码:

<xsl:template match="*" mode="option">
    <xsl:param name="value" select="'value'"/>
    <option>
        <xsl:attribute name="value" select="./@($value)"/>
        <xsl:value-of select="./@name"/>
    </option>
</xsl:template>

问题是如何获得名称在变量$ value中的属性值? 我应该使用什么而不是不工作:./@($ value)。

1 个答案:

答案 0 :(得分:1)

如果你想使用参数或变量值,那么你需要$value,即<xsl:attribute name="value" select="$value"/>来创建一个名为value的属性,并且参数的值是value<xsl:attribute name="value" select="@*[local-name() eq $value]"/>。如果您想要读出名为您的参数的属性的值,那么您将使用<option value="{$value}"><xsl:value-of select="@name"/></option>

为简洁起见,您还可以考虑使用属性值模板:

<option value="{@*[local-name() eq $value]}"><xsl:value-of select="@name"/></option>
分别

{{1}}