Как я могу найти ссылку URL по тексту ссылки с XPath?



у меня хорошо сформированы XHTML страница.
Я хочу найти URL-адрес назначения ссылки, когда у меня есть текст, который связан.



пример



<a href="http://stackoverflow.com">programming questions site</a>
<a href="http://cnn.com">news</a>


Я хочу XPath выражение такое, что если дано programming questions site это даст http://stackoverflow.com а если я его отдам news это даст http://cnn.com.

1060   6  

6 ответов:

должно быть что-то похожее на:

//a[text()='text_i_want_to_find']/@href

слишком поздно для вас, но для всех остальных с тем же вопросом...

//a[contains(text(), 'programming')]/@href

конечно, "программирование" может быть любым фрагментом текста.

//a[text()='programming quesions site']/@href 

который в основном идентифицирует якорный узел <a> который имеет текст, который вы хотите, и извлекает .

подумайте о фразе в квадратных скобках как о предложении WHERE в SQL.

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

для нечувствительных к регистру содержит, используйте следующее:

//a[contains(translate(text(),'PROGRAMMING','programming'), 'programming')]/@href

translate преобразует прописные буквы в программировании в нижний регистр программирования.

Если вы используете html agility pack используйте getattributeValue:

$doc2.DocumentNode.SelectNodes("//div[@class='className']/div[@class='InternalClass']/a[@class='InternalClass']").GetAttributeValue("href","")

Comments

    Ничего не найдено.