使用XSL-T向单选按钮添加属性名称



我制作了一个XSL-T文件,将xml测验转换为带有表格的表格,问题是,由于问题是使用递归编程创建的,我无法为它们添加名称,因此无法知道哪个问题是哪个问题。

XML文件包含如下元素:

<question id="question2" filter="generic">
<foo>What console do you like the most?</foo>
<simple-election>
<option>Playstation 4</option>
<option>Nintendo Switch</option>
<option>XBox One</option>
<option></option>
</simple-election>
</question>

这是XSL-T文件:

<xsl:template match="simple-election">
<xsl:for-each select="option">
<tr>
<td><xsl:value-of select="."/></td>
<td><input type="radio"></input></td>
</tr>
</xsl:for-each>
</xsl:template>

(文件的其他部分有表格、表格等的开头(

我的想法是添加这样的东西:

<td><input name="question/@id" type="radio"></input></td>

但我似乎能让它发挥作用,知道吗?

附言:如果需要的话,我可以把文件的其余部分给你看。

尝试:

<input name="{../../@id}" type="radio">

或者,为了提高效率,在变量中捕获id

<xsl:template match="simple-election">
<xsl:variable name="question-id" select="../@id" />

然后将其用作:

<input name="{$question-id}" type="radio">

有关更多详细信息,请参阅位置路径和属性值模板。

最新更新