XSLT选择所有兄弟节点,直到特定嵌套为止

时间:2015-03-26 07:51:49

标签: xml xpath xslt-1.0

我正试图从下面的示例表中获取所有节点,直到下一个使用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。

1 个答案:

答案 0 :(得分:0)

您希望以下td-with-style之后 的所有以下td元素与td-with-style之后最接近的 my 相同:

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

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