Селектор XPath по классу И индексу - PullRequest
17 голосов
/ 09 ноября 2011

У меня есть следующий HTML:

<div>
  <p>foo</p>
  <p class='foo'>foo</p>
  <p class='foo'>foo</p>
  <p>bar</p>
</div>

Как я могу выбрать второй тег P с классом 'foo' с помощью XPath?

1 Ответ

30 голосов
/ 09 ноября 2011

Следующее выражение должно сделать это:

//p[@class="foo"][2]

Редактировать: использование [2] здесь выбирает элементы в соответствии с их положением среди их братьев и сестер, а не среди соответствующих узлов.Поскольку обе ваши таблицы являются первыми дочерними элементами своих родительских элементов, [1] будет совпадать с ними обоими, а [2] не будет совпадать ни с одним.Если вам нужен второй такой элемент во всем документе , вам нужно поместить выражение в скобки, чтобы [2] применилось к набору узлов:

(//p[@class="foo"])[2]
(//table[@class="info"])[2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...