'<tr id='item-<xsl:value-of select=“$item.count” />'>' : 如何正确操作?

`<tr id='item-<xsl:value-of select="$item.count" />'>` : How to do it correctly?

提问人:U. Windl 提问时间:10/24/2023 更新时间:10/24/2023 访问量:25

问:

XSL 不是我的日常工作,但我正在尝试为创建的表行分配带有通用前缀的升序 ID(以便能够使用 JavaScript 遍历它们以执行一些类似电子表格的计算)。

我设法将升序计数放入一个名为 的变量中,但我无法(即使在搜索了很多之后)将其放入 的属性中。item.countid=<tr>

使用时,我从Firefox收到了一条“格式不正确”的消息。<tr id='item-<xsl:value-of select="$item.count" />'>

有问题的模板如下所示:

  <xsl:template match="item">
    <xsl:variable name="item.count" select="count(preceding::item)" />'
    <tr id='item-<xsl:value-of select="$item.count" />'>
      <xsl:comment><xsl:value-of select="$item.count" />: <xsl:value-of select="." /></xsl:comment>
      <xsl:apply-templates select="./*"/>
      <!-- ... -->
      <td>(output)</td>
    </tr>
  </xsl:template>

(评论只是为了验证计数器目前是否按预期工作)

HTML 变量 XSLT-1.0 标识符

评论

0赞 michael.hor257k 10/24/2023
阅读有关属性值模板的信息。P.S. 计算前面的项目不是对项目进行编号的好方法;请考虑使用 或 .position()xsl:number
0赞 U. Windl 10/24/2023
因此,中的“卷曲”似乎已经解决了这个问题(在我尝试没有卷曲括号但没有成功之前)。但是,我认为这些卷曲是 XSLT 3 的功能,浏览器仅支持 XSLT 1......好吧,我没有说整个事情都在(Firefox)浏览器中运行。<tr id="item-{$item.count}">
0赞 U. Windl 10/24/2023
@michael.hor257k 我找到了,但我找到的所有例子要么是微不足道的,要么太复杂(在 SO 这里)无法掌握。我可以调查一下......xsl:numberposition
0赞 michael.hor257k 10/24/2023
上面的链接指向 XSLT 1.0 规范。您可以单独询问编号 - 但请提供最小的可重现示例,而不是断章取义的代码片段。

答: 暂无答案