需要你的帮助以下......如何改变这个:
<ul>
<li value="xxx">Text XXX</li>
<li value="zzz">Text ZZZ</li>
<li value="yyy">Text YYY</li>
</ul>
到这个
<select>
<option value="xxx">Text XXX</option>
<option value="zzz">Text ZZZ</option>
<option value="yyy">Text YYY</option>
</select>
提前谢谢。
我尝试了一些远非正确的东西
<xsl:for-each select="ul/li">
<option value="*/@value">
<xsl:copy-of select="li"/>
</option>
</xsl:for-each>
答案 0 :(得分:1)
直接使用模板:
<xsl:template match="ul">
<select>
<xsl:apply-templates/>
</select>
</xsl:template>
<xsl:template match="li">
<option value="{@value}">
<xsl:apply-templates/>
</option>
</xsl:template>
答案 1 :(得分:0)
我不会把你的尝试称为“完全废话”,它实际上非常接近。你需要改变的是:
{}
括在值周围
@value
,不需要*/
value-of
和.
来引用当前元素。像这样:
<select>
<xsl:for-each select="ul/li">
<option value="{@value}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</select>