Получить (текст) в XPath
У меня есть следующая структура DOM / HTML, я хочу получить (просто практикую...) отмеченные данные.
тот, который находится под элементом h2. этот элемент div[@class="coordsAgence"] имеет еще несколько детей div ниже и еще несколько H2.. делаешь так:
div[@class="coordsAgence"]
получит это значение, но с дополнительным ненужным текстом. обновление: значение (из этого примера), которое я в основном хочу, это: текст "GALLIER Dennis".
2 ответов
Кажется, вы хотите первый текстовый узел в этом div:
div[@class="coordsAgence"]/text()[1]
должны сделать это.
обратите внимание, что это предполагает, что на самом деле нет пробелов между этими комментариями внутри <div class="coordsAgence">
; в противном случае эти пробелы будут составлять дополнительные текстовые узлы, которые вам придется учитывать.
получить первый текстовый узел после первого 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]