Задать вопрос
@helixly

Запрос XPath без дочерних элементов?

<div class="some-class">
   <div>
        <span>Возраст</span>
        "24"
        <span>лет</span>
   </div>  
</div>


nodeValue после запроса "//div[contains(@class, 'some-class')]/div" содержит (string) "Возраст 24 лет".

Как исключить дочерние <span> в запросе, чтобы сразу получать 24?
  • Вопрос задан
  • 2248 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
glebovgin
@glebovgin
Full Stack Web Developer
Если структура html одинакова, то сработает такой вариант
//div[contains(@class, "some-class")]/div/span[1]/following-sibling::text()

А вот такой вариант
//div[contains(@class, "some-class")]/div/text()[normalize-space()]

выберет все текстовые элементы, исключая пробелы. В конкретно вашем случае в item(0)->nodeValue будет значение между двумя span. Если нужны все текстовые элементу внутри div, то просто пройти foreach по результатам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы