我对XSL for-each有一点问题,我找不到解决方案(是的,我知道GIYF,我也没有帮助)。那就是问题所在。我有这个代码
<select class="gr">
<xsl:attribute name="style">position:relative; width:350px;</xsl:attribute>
<xsl:attribute name="name">organoDestinatario</xsl:attribute>
<xsl:attribute name="id">organoDestinatario</xsl:attribute>
<option value=""></option>
<xsl:for-each select="$lang.options/option">
<xsl:variable name="lang.temp" select="value"/>
<option value="$lang.temp"><xsl:value-of select="text"/></option>
</xsl:for-each>
</select>
似乎是正确的但是,当我查看选项变量值时,我看到的是$ lang.temp,所以它没有捕获$ lang.temp的值,而是变量的名称。奇怪的是,“文本”正在工作,如果我将其更改为“值”,它可以工作并显示值。所以我确信一切都“充满”。
有关它的任何建议吗?我真的不知道这里发生了什么。任何帮助将不胜感激。
答案 0 :(得分:1)
您需要使用属性值模板
<option value="{$lang.temp}">
或者完全放弃变量并说出
<option value="{value}">
您希望将其解释为XPath表达式的文字属性值的任何部分都需要用大括号括起来。任何没有大括号的东西都是按字面意思呈现的。