выражение 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() часть.