从xslt

时间:2015-12-09 04:41:43

标签: xml xslt

我无法弄清楚如何正确使用XSLT生成带有命名输入下拉框的HTML(需要在表单中引用)。

这是我尝试做的一个简化示例,假设select元素被命名为" foo" - 我的实际需要是从传入XML中的属性设置名称。

<xsl:template match="category">
    <form id="searchform" action="resultsPage" method="get">
        <xsl:if test="position()=1">
            <input type="submit"/>
        </xsl:if>
        <xsl:variable name="x">foo</xsl:variable>
        <select name="$x">
            <option>*</option>
            <xsl:for-each select="item">
                <option><xsl:value-of select="@code"/></option>
            </xsl:for-each>
        </select>
    </form>  
</xsl:template>

我知道这不是正确的语法 - 我对XSLT很新,我只想说明我需要的东西,这是一个动态命名的select元素。我尝试过的所有内容都只是将名称设置为我尝试用作变量的文字字符串。 感谢。

1 个答案:

答案 0 :(得分:1)

使用大括号({})来评估XSL变量以代替属性值:

<select name="{$x}">
    <option>*</option>
    <xsl:for-each select="item">
        <option><xsl:value-of select="@code"/></option>
    </xsl:for-each>
</select>