Попытка получить последний элемент TABLE (xpath) - PullRequest
0 голосов
/ 25 марта 2020

У меня есть html документ и я пытаюсь получить доступ к последнему элементу TABLE.

Если я сделаю следующее - я получу правильную длину снимка 5.

var headings = document.evaluate( ".//table[@class='blue']",document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);

Глядя на структуру страницы HTML - 2 из таблиц, захваченных xpath, являются вложенными

TABLE TABLE TABLE TABLE TABLE << это то, что меня интересует. </p>

В документе всего 5 таблиц с class = 'blue'

Мне нужен доступ к последней - так я и сделал:

var headings = document.evaluate( ".//table[@class='blue'][last()]",document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);

Возвращает неожиданную длину 4 - я ожидал 1.

Последняя запись снимка (idx = 3) является правильной таблицей. При использовании last () кажется, что пропускается 1 скрытая таблица.

Как я могу просто получить последний элемент TABLE?

Глядя на документ html - есть 5 таблиц с class = 'blue' и два из них вложены

TABLE
TABLE
  TABLE
  TABLE
TABLE   <<-- I'm interested in this one

Я попытался

var headings = document.evaluate( ".//table[@class='blue' and position() = last()]",document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);

, и он вернул длину 3 - три средних таблицы .

1 Ответ

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

Похоже, правильный ответ:

"(.//table[@class='blue'])[last()]"

нужны перены вокруг table.

Есть ли недостатки?

Лучше способ сделать то же самое?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...