设置html复选框值

时间:2012-08-15 07:02:21

标签: xslt

我正在尝试使用xsl设计一个表单来解析一个简单的xml文件;像这样:

<tests>
    <agent ID="1" Name="Name 1"  />
    <agent ID="2" Name="Name 2"  />
    <agent ID="3" Name="Name 3"  />
</tests>

和xsl文件:

<form action="." method="post"  >
        <xsl:for-each select="tests">
        <table >
            <tr>
                <th></th>
                <th>ID</th>
                <th>Name</th>
            </tr>
            <xsl:for-each select="agent">
                <tr>
                    <td><input type="checkbox" name="checkbox1" value="" /> </td>
                    <td><xsl:value-of select="@ID"/></td>
                    <td><xsl:value-of select="@Name"/></td>
                </tr>
            </xsl:for-each>
        </table>
            <input type="submit" value="Delete"/>
        </xsl:for-each>
        </form>

我希望checkbox的值为ID值。(<xsl:value-of select="@ID"/>)。但我不能在复选框标签内使用此标签。 我该怎么办?

2 个答案:

答案 0 :(得分:4)

除了其他地方提到的<xsl:attribute>元素之外,还值得学习Attribute Value Templates,因为这些通常可以帮助简化您的XSLT代码。这些允许您将表达式直接放在属性

<input type="checkbox" name="checkbox1" value="{@Value}" />

花括号{}表示这是一个“AVT”并包含一个要评估的表达式。

如果您想要基于XML中的某些值的动态属性名称,您甚至可以在<xsl:attribute>中使用它们。

<xsl:attribute name="{$attrname}">

答案 1 :(得分:0)

<xsl:attribute>将允许您向标记添加任意属性。

  

xsl:attribute元素可用于向结果元素添加属性,无论是由样式表中的文字结果元素创建还是通过xsl:element等指令创建。

<picture>
  <xsl:attribute name="source">foo</xsl:attribute>
</picture>