Получить (текст) в XPath - PullRequest
       22

Получить (текст) в XPath

11 голосов
/ 28 марта 2011

У меня есть следующая структура DOM / HTML, я хочу получить (просто тренируясь ...) отмеченные данные. enter image description here

Тот, который находится под элементом h2. этот элемент div [@ class = "ordinsAgence "], имеет еще несколько дочерних элементов ниже и еще несколько h2 .. так поступает:

div[@class="coordsAgence"]

Получит это значение, но с дополнительным ненужным текстом. ОБНОВЛЕНИЕ : Значение (из этого примера), которое я в основном хочу, таково: текст "GALLIER Dennis".

Ответы [ 2 ]

20 голосов
/ 28 марта 2011

Кажется, вы хотите, чтобы первый текстовый узел в этом div:

div[@class="coordsAgence"]/text()[1]

должен был это сделать.

Обратите внимание, что это предполагает, что фактически нет пробелов между этими комментариями внутри <div class="coordsAgence">;в противном случае эти пробелы будут представлять собой дополнительные текстовые узлы, которые вам придется учитывать.

1 голос
/ 28 марта 2011

Получить первый текстовый узел после первого h2 в div с классом "coordsAgence":

div[@class='coordsAgence']/h2[1]/following-sibling::text()[1]

Обратите внимание, что это первое выражение возвращает первый текстовый узел после первого h2даже когда какой-то другой узел появляется между ними.Если вы хотите вернуть текст только тогда, когда это узел, за которым сразу следует за первым h2, попробуйте что-то вроде этого:

div[@class='coordsAgence']/h2[1][following-sibling::node()[1][self::text()]]/following-sibling::text()[1]
...