выражение XPath для выбора текста из ссылки
у меня есть такое содержимое html-файла:
<a class="bf" title="Link to book" href="/book/229920/">book name</a>
помогите мне построить выражение xpath, чтобы получить текст ссылки (название книги).
Я пытаюсь использовать /a
, но выражение без результатов.
3 ответов
вы пробовали
//a
?
более конкретно лучше:
//a[@class='bf' and starts-with(@href, '/book/')]
обратите внимание, что этот выбор <a>
элемент. В вашей среде хоста легко извлечь текстовое значение этого узла с помощью стандартных методов DOM (например,.textContent
свойства).
чтобы выбрать фактический текстовый узел, см. другие ответы в этом потоке.
если контекст-это весь документ, который вы, вероятно, должны использовать //
вместо /
. Также возможно (не уверен) нужно спуститься еще на один уровень, чтобы получить текст.
Я думаю, это должно выглядеть так
//a/text()
EDIT: как Tomalak указал, что text()
не text
Это зависит также от остальной части документа. Если вы используете //
в начале будут возвращены все соответствующие узлы, что может быть слишком много результатов, если у вас есть другие ссылки в вашем документе.
кроме того, возможным выражением xpath является //a/text()
.
на /a
вы пробовали только возвращает a
-сам тег, если это корневой элемент. Чтобы получить текст ссылки, вам нужно добавить /text()
часть.