Как сопоставить элементы после элемента с определенным содержимым или атрибутом? - PullRequest
0 голосов
/ 24 марта 2012

Упрощенный пример

<td>caption</a>
<a id="tt-1">text1</a>
<a id="tt-2">text2</a>
<td>topics</td>
<a id="tt-3">text3</a>
<a id="tt-4">text4</a>
<a id="tt-5">text5</a>

Мне нужно сопоставить все a элементы ниже <td>topics</td>.Обратите внимание, что в этих примерах есть много элементов между этими элементами.Также <td> может быть заключено в другие элементы.

Мое текущее реальное выражение XPath выглядит следующим образом

//a[contains(@id,'tt-')]

Обновлено, чтобы быть ближе к реальному

Еще одно уточнение.

1 Ответ

2 голосов
/ 24 марта 2012

На основании вашего заявления "Мне нужно сопоставить все элементы ниже <td>topics</td>"

//td[.='topics']/a

Хотя я уверен, что это не вся история.1007 *

На основе вашего обновленного примера:

//a[starts-with(@id, 'tt-') and preceding-sibling::td[1] = 'topics']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...