Выражение Xpath возвращает значение null

У меня полно таких ссылок:

<a href="/edit_flat/1674093.html"><b>Edit issue &gt;&gt;</b></a>

Пытаясь извлечь содержимое href, я использую выражение Xpath:

//a[contains(@href,'/edit_flat')]

но он возвращает мне ноль. Что я делаю неправильно ?


person Eugene Shmorgun    schedule 05.09.2013    source источник


Ответы (1)


//a[contains(@href,'/edit_flat')] выбирает a элементов в любом месте дерева документа, которые имеют атрибут href, содержащий строку '/edit_flat'.

Эти совпадающие элементы имеют именно этот атрибут «href», но используемое вами выражение XPath возвращает «только» элементы a, если они есть.

Чтобы фактически вернуть значения атрибутов совпадающих элементов, вам нужен дополнительный шаг с / и @href. Итак, что вы хотите:

//a[contains(@href,'/edit_flat')]/@href

Предложение:

Что вам действительно нужно, так это, вероятно, выбрать ссылки, которые href начинаются с подстроки "/edit_flat", поэтому их безопаснее использовать:

.//a[starts-with(@href,'/edit_flat')]/@href
person paul trmbrth    schedule 05.09.2013