如何在xpath中獲取最後一個表?

c# html-agility-pack xpath

所以我有以下情況:

<table class="table-main detail-odds sortable">
  ..
</table>
<table class="table-main detail-odds sortable">
  ..
</table>

正如你可以看到我有兩個具有相同類的表,我想得到最後一個表(我不能使用索引,因為表的數量在變化)。

目前我有這個代碼:

HtmlNode oddsTable = doc.DocumentNode
         .SelectNodes("//table[@class='table-main detail-odds sortable']");

不幸的是我找不到任何.Last()方法,也許可以直接使用xpath這樣做而不使用SelectNodes()

一般承認的答案

您可以使用last()作為索引

"(//table[@class='table-main detail-odds sortable'])[last()]"

務必將表達式包裝在括號中。


熱門答案

last()只有在兩個表都是同一父表的子表時才會返回最後一個表。所以,如果HTML真的像

<table class="table-main detail-odds sortable">
  ..
</table>
<table class="table-main detail-odds sortable">
  ..
</table>

然後

//table[@class='table-main detail-odds sortable'][last()]

將獲取所需的表格...

但萬一

<div>
    <table class="table-main detail-odds sortable">
  ..
    </table>
</div>
<div>
    <table class="table-main detail-odds sortable">
  ..
    </table>
</div>

你可能需要

(//table[@class='table-main detail-odds sortable'])[count(//table[@class='table-main detail-odds sortable'])]


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow