XPath text () выражение, которое содержит новую строку - PullRequest
7 голосов
/ 02 декабря 2010

Допустим, у меня есть следующий HTML-код:

<a href="/site/somesite/">
                          somesite</a>

У меня вопрос, как мне написать выражение XPath, которое должно использовать свойство text(), чтобы соответствовать ссылке somesite, и я не могу изменить источник?

Ответы [ 2 ]

4 голосов
/ 02 декабря 2010

Я не уверен, хотите ли вы искать URL-адрес на основе текста ссылки или текста ссылки на основе URL-адреса.Это даст вам URL:

//a[normalize-space() = 'somesite']/@href

Это даст вам текст:

normalize-space(//a[@href = '/site/somesite/'])
2 голосов
/ 02 декабря 2010

Используйте normalize-space(), который отбрасывает начальные и конечные пробельные символы (и объединяет повторяющиеся пробелы в середине текста в один пробел), так что вы можете сравнить нормализованный text() и использовать для фильтрации в предикат.

a[normalize-space(text())='somesite']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...