XPath: следующий дочерний элемент родителя

Я пытаюсь получить ребенка от родителя, используя Xpath в php.

HTML:

<div class = "Grid Grid--multiCol Grid--2to3 Grid--gutterH20px">
    <div class = "Grid-cell Grid-cell--1">
        <span class = "u-colorVehicleAttrs">Body:</span>
    </div>
    <div class = "Grid-cell Grid-cell--2">Sport Utility Vehicle (SUV)/Multi Purpose Vehicle (MPV)</div>
</div>

Php:

...
$bodytype = $my_xpath->query("//span[text()='Body:']/following-sibling::div[1]")[0]->nodeValue;
echo $bodytype;

Итак, какую последовательность я ищу:

  1. Найдите диапазон с текстом "Body:"
  2. Получить текст div рядом с родительским элементом текущего узла -> результат эха должен быть «внедорожник / многоцелевой автомобиль (MPV)»

P.S .: имена классов не уникальны и используются для многих других строк, поэтому доступ по атрибуту не выполняется.

Надеюсь, вопрос ясно объяснен :) Спасибо.

Чтобы решить эту проблему, используя ваш подход, просто поднимитесь на один уровень: "//span[text()='Body:']/../following-sibling::div[1]"

code-kobold 26.08.2018 16:09

Спасибо, код-кобольд! Оно работает

Devy 27.08.2018 18:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
191
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Get text of div next to parent element of current node

Однако ваш xpath пытается получить следующих братьев и сестер текущий узел.

Итак, исправив это, xpath станет: //span[text() = "Body:"]/../following-sibling::div[1]

Другие вопросы по теме