Поэтому у меня есть следующая ситуация:
<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()
метод .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'])]