@Shimpanze

Почему не срабатывает проверка xpath?

Добрый день!

Необходимо в цикле (при переборе элементов), проверить - подходит ли элемент под условие xpath.

В данном случае, - содержит ли класс foo.

Если содержит - пропустить его, если нет - добавить в переменную.

Делаю так:

$content = '';

foreach($entry as $element) {
  // Вот здесь я спрашиваю, текущий элемент в цикле
  // подходит под условие xpath?
  if ($xpath->evaluate('self::div[contains(@class, \'foo\')]', $element) === true) {
    continue;
  }
  else {
    $content .= $dom->saveHTML($element);
  }
}

echo "$content";


Почему на выходе я получаю пустой результат?

Спасибо!
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
DevMan
@DevMan
$entry = $xpath->query('//div[contains(@id, \'entry\')]/div');

$content = '';
foreach($entry as $element) {
	if(! $xpath->evaluate("contains(@class, 'foo')", $element)) {
		$content .= $dom->saveHTML($element) . PHP_EOL;
	}
}
echo $content;

//<div class="world bar">bla bla bla</div>
//<div class="two bar">bla bla bla</div>
//<div class="paper bar">bla bla bla</div>
//<div class="boo bar loo">bla bla bla</div>
https://3v4l.org/FhNUp
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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