Получить позицию узла в списке? - PullRequest
2 голосов
/ 31 марта 2020

Интересно, как найти положение одной страны в списке обновлений CoronaVirus https://www.worldometers.info/coronavirus с помощью Chrome console

Я пытался: $x("count(.//*[@id='main_table_countries_today']/tbody/tr/td[1][.='Vietnam']/preceding-sibling::*)")

enter image description here

Кто-нибудь может дать мне свет здесь. Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Для завершения ответа Кишкина, кратчайшая форма:

count((//td[.='Vietnam'])[1]/preceding::tr[@style=""])+1

Вывод: 93 (92 + 1)

И исключить Алмазную принцессу:

count((//td[.='Vietnam'])[1]/preceding::tr[@style=""][not(.//span)])+1

Выход: 92 (91 + 1)

0 голосов
/ 31 марта 2020

В вашем xpath вы применяете preciding-siblings к первому td в tr, но вы должны посчитать братьев и сестер для tr, так как это на самом деле строки.

Этот работал для Я:

$x("count(//table[@id='main_table_countries_today']//tr[td/text() = 'Vietnam']/preceding-sibling::*)")

Также, по моему мнению, нет необходимости делать +1 в конце, так как первый ряд не имеет значения: весь мир. Но вы должны лучше знать, что вам нужно.

enter image description here

Или вот ваше исправлено:

$x("count(.//table[@id='main_table_countries_today']/tbody/tr[td[1][.='Vietnam']]/preceding-sibling::*)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...