Использование XPath для получения текста абзаца со ссылками внутри - PullRequest
5 голосов
/ 09 ноября 2011

Я анализирую HTML-страницу с помощью XPath и хочу получить весь текст некоторого конкретного абзаца, включая текст ссылок.

Например, у меня есть следующий абзац:

<p class="main-content">
    This is sample paragraph with <a href="http://google.com">link</a> inside.
</p>

Iв результате нужно получить следующий текст: «Это пример абзаца со ссылкой внутри», однако применение "//p[@class'main-content']/text()" дает мне только «Это пример абзаца с внутренностью».

Не могли бы вы помочь?Спасибо.

1 Ответ

7 голосов
/ 09 ноября 2011

Чтобы получить все текстовое содержимое узла, используйте функцию string:

string(//p[@class="main-content"])

Обратите внимание, что это получает строковое значение. Если вам нужны текстовые узлы (как возвращено text()), вы можете сделать это. Вам нужно искать на всех глубинах:

//p[@class="main-content"]//text()

Возвращает три текстовых узла: This is sample paragraph with, link и inside.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...