Задать вопрос
@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?
  • Вопрос задан
  • 2275 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 по результатам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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