XPath: вопрос относительно p-элемента из HTML - PullRequest
0 голосов
/ 24 мая 2011

У меня есть вопрос относительно XPath и p-элемента из HTML. Допустим, я столкнулся с HTML-структурой, которая выглядит следующим образом:

<div id="this-is-a-text">
This is text segment 1.
<p>This is text segment 2.</p>
this is text segment 3.
<div id="this-is-not-part-of-the-text">This doesn't belong to the text.</div>
This is text segment 4.
</div>

Мне интересно, как правильно проанализировать все сегменты текста, независимо от того, находятся они внутри p-элемента или нет? (Примечание: последовательность элементов случайная.)

Что я не понимаю, так это то, почему // div [@ id = "this-is-a-text"] / p , кажется, делает эту работу (вместо того, чтобы просто возвращать сегмент текста 3) тогда как // div [@ id = "this-is-a-text"] / text () вообще не возвращает никаких результатов.

Может кто-нибудь помочь мне понять это?

Спасибо!

Bob

1 Ответ

1 голос
/ 24 мая 2011

Как отметил Мартин Хоннен, запрос //div[@id="this-is-a-text"]/text() должен возвращать набор из трех текстовых сегментов:

"\nThis is text segment 1.\n",
"\nthis is text segment 3.\n",
"\nThis is text segment 4.\n"

Если я правильно понял ваш вопрос, вам нужен запрос типа

//div[@id="this-is-a-text"]//text()

И это должно вернуть set:

"\nThis is text segment 1.\n",
"This is text segment 2.",
"\nthis is text segment 3.\n",
"This doesn't belong to the text.",
"\nThis is text segment 4.\n"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...