Xpath получает узел без дочернего содержимого узла - PullRequest
1 голос
/ 21 июля 2011

Эй, ребята, вы не можете обойти это. У меня есть HTML структурирована следующим образом:

<div class="review-text">
<div id="reviewerprofile">
<div id="revimg"></div>
<div id="reviewr">marc</div>
<div id="revdate">2011-07-06</div>
</div>
this is an awesome review

</div>

То, что я пытаюсь получить, это просто текст «это потрясающий обзор», но каждый раз, когда я запрашиваю узел, я также получаю другое содержимое в дочерних элементах. используя что-то вроде этого сейчас ".//div[@class='review-text ']" как получить только этот текст? танк ты очень

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Ты почти у цели!Просто добавьте / text () в конце вашего XPath, чтобы получить текстовый узел.

0 голосов
/ 21 июля 2011

Выражение XPath, такое как // div, возвращает набор узлов, в данном случае это элементы div. Это фактически указатели на исходные узлы в исходном дереве; узлы по-прежнему связаны с их родителями, детьми, предками и братьями и сестрами. Если вы видите дочерние элементы элемента div и не хотите их, это не ошибка процессора XPath, а ошибка любого программного обеспечения, обрабатывающего результаты, возвращаемые выражением XPath.

Вы можете получить текст, который является непосредственным потомком элемента div, используя / text (), как предложено. Однако это предполагает, что вы точно знаете, что ожидаете найти на HTML-странице - если бы «круто» было выделено курсивом, это дало бы вам нечто иное.

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