如何指定 return 整个 table 没有最后一行的 Xpath?

How to specify Xpath that return whole table without last row?

这里是table的代码。我需要提取整个 table 而没有最后一行。

整个table:

 <table class="product-content__table">
    <tr><th class="product-content__th">Состав</th><td>нержавеющая сталь, натуральная кожа </td></tr>
    <tr><th class="product-content__th">Ширина</th><td>2 см</td></tr><tr><th class="product-content__th">Цвет</th><td>серый </td></tr>
    <tr><th class="product-content__th">Страна производства</th><td>Россия </td></tr><tr><th class="product-content__th">Сезон</th><td>Мульти </td></tr>
    <tr><th class="product-content__th">Коллекция</th><td>Весна-лето </td></tr>
    <tr><th class="product-content__th">Артикул</th><td itemprop="sku">RO003DMCMA98</td></tr>
    </table>

我需要提取整个 table 而没有这一行:

<tr><th class="product-content__th">Артикул</th><td itemprop="sku">RO003DMCMA98</td></tr>

<td><th> 的兄弟而不是 child 所以你实际上不需要 th 在你的 xpath 中。并且您想过滤掉同一个 table 中的最后一个 tr 而不是过滤掉同一个 tr 中的最后一个 td :

//table[@class="product-content__table"]//tr[position() < last()]/td

如果您想获取 <tr> 而不是 <td> 的列表,请删除尾随 /td

这个有效:

//table//tr[position()<last()]

I need all tags including table tag.

XPath 只能 select 输入中存在的节点。如果您的输入中有一个包含五行的 table 元素,而您想要一个包含四行的 table 元素,那么您的输入中没有这样的 table 元素,因此您不能 select 它与 XPath。如果你想获得一个不同于输入中任何节点的节点,你需要 XSLT 或 XQuery。