这是表格的代码。我需要提取没有最后一行的整个表。
整张桌子:
<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>
我需要在没有这一行的情况下提取整个表:
<tr><th class="product-content__th">Артикул</th><td itemprop="sku">RO003DMCMA98</td></tr>
答案 0 :(得分:2)
我需要包括表格标签在内的所有标签。
XPath只能选择输入中存在的节点。如果输入中有一个包含五行的表元素,并且您想要一个包含四行的表元素,那么输入中没有这样的表元素,因此您无法使用XPath选择它。如果要获得与输入中的任何节点不同的节点,则需要XSLT或XQuery。
答案 1 :(得分:1)
<td>
是<th>
不是孩子的兄弟,因此您的xpath中实际上不需要th
。并且您希望过滤掉同一tr
中的最后table
,而不是过滤掉同一td
中的最后一个tr
:
//table[@class="product-content__table"]//tr[position() < last()]/td
如果您想获取/td
而非<tr>
的列表,请 删除跟踪<td>
。
答案 2 :(得分:1)
这有效:
//table//tr[position()<last()]