Как я могу найти ссылку 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.
6 ответов:
слишком поздно для вас, но для всех остальных с тем же вопросом...
//a[contains(text(), 'programming')]/@hrefконечно, "программирование" может быть любым фрагментом текста.
//a[text()='programming quesions site']/@hrefкоторый в основном идентифицирует якорный узел
<a>который имеет текст, который вы хотите, и извлекает .
подумайте о фразе в квадратных скобках как о предложении WHERE в SQL.
Итак, этот запрос говорит: "выберите атрибут" href "( @ ) тега" a", который появляется в любом месте ( / / ), но только там, где (заключенная в скобки фраза) текстовое содержимое тега" a"равно" сайту вопросов программирования".
для нечувствительных к регистру содержит, используйте следующее:
//a[contains(translate(text(),'PROGRAMMING','programming'), 'programming')]/@hreftranslate преобразует прописные буквы в программировании в нижний регистр программирования.
Если вы используете html agility pack используйте getattributeValue:
$doc2.DocumentNode.SelectNodes("//div[@class='className']/div[@class='InternalClass']/a[@class='InternalClass']").GetAttributeValue("href","")
Comments