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

XPath: как получить текстовый узел, когда рядом с ним есть теги?

Здравствуйте!

Начал изучать XPath, очень крутая вещь, но намертво завис на ровном месте... Есть код:

$xml = simplexml_load_string('<div>123 <br /> 456</div>');


Хочу получить отсюда текстовые узлы - 123 и 456. Чтобы отдельно всё было. Пробую:

$xml->xpath('//div/text()[1]')

Получаю полностью весь текст :( Реально ли получить отдельно текстовые узлы? Спасибо!
  • Вопрос задан
  • 566 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию: от новичка до автоматизатора
    9 месяцев
    Далее
  • Skillbox
    Профессия Инженер по автоматизации тестирования
    9 месяцев
    Далее
  • Учебный центр IBS
    WEB-025_SELF Основы использования XML и XSD
    1 неделя
    Далее
Решения вопроса 1
DevMan
@DevMan
$dom = new DOMDocument;
$dom->loadXML('<div>123 <br /> 456</div>');

$xpath = new DOMXPath($dom);
foreach ($xpath->query('//div/text()') as $textNode) {
	echo trim($textNode->nodeValue), PHP_EOL;
}
ideone.com/FYkZwX
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@krypt3r
Функции XPath substring*() или же средствами PHP
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ENJOY PRO Санкт-Петербург
от 180 000 до 270 000 ₽
Сбер Москва
от 200 000 до 300 000 ₽
Сбер Москва
от 200 000 до 400 000 ₽