XSLT Select 直到特定嵌套的所有兄弟姐妹

XSLT Select all siblings until specific nested

我正在尝试从以下示例中获取所有节点 table 直到下一个带有使用 XSLT 1.0 附加样式的 td(我不能在这里使用 2.0)

<tbody>
<tr>
    <td style="..."></td>
</tr>
<tr>
    <td></td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td style="..."></td>
</tr>
<tr>
    <td></td>
    <td></td>
    <td></td>
</tr>

从第一个 /tbody/tr 开始,我使用了以下内容:

<xsl:for-each select="following::td[not(attribute::style)]">

但后来我得到了所有的 td,除了附有样式的那个。

您需要以下所有 td 元素,其 nearest following td-with-style 与 my nearest following td-with 相同-样式:

following::td[generate-id(following::td[@style][1]) = generate-id(current()/following::td[@style][1])]

这包括 current() 是带有 td[@style] 的最后一行的情况,在这种情况下,两个 generate-id 值都将是空字符串。