@Bestolkovy

Как с помощью XPath найти содержимое контейнера с классом?

Добрый день!

Необходимо найти все контейнеры с классом `auto-formatting` в теле тега body и обработать их.

Ищу так:

preg_match( '/\<div class\=\"auto-formatting\"\>([\s\S]*?)\<\/div\>\<\!-- \.auto-formatting --\>/miu', func_get_arg(0), $matches );


Но такой подход совсем не гибкий.

Как это можно делать с помощью XPath?

Пока додумался только до такого:

$i = 0;
$html = DOMDocument::loadHTML( $buffer );
$xpath = new DOMXPath($htmll);

    foreach( $xpath->query('//div[contains(@class,"auto-formatting")]') as $item ) {
        // обработка
        $i++;
    }


Не работает. Подскажите, пожалуйста, как правильно написать?
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
alekciy
@alekciy
Вёбных дел мастер
Выражение правильное. В коде описка. DOM грузиться в переменную $html, а XPath применяется к документу из меременной $htmll. Вообще если $htmll был не инициализирован, то должно было валиться с ошибкой. В общем стоит включить отображение ошибок.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы