@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?
  • Вопрос задан
  • 2202 просмотра
Решения вопроса 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 по результатам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект