我有一个输出选项列表的代码:
<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)。
答案 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}}