@Shimpanze

Можно ли использовать xpath-выражения внутри if-условия?

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

Можно ли использовать xpath-выражения внутри if-условия?

Пример:
foreach( $elements as $item ) {

  // у итерируемого в данный момент элемента class = foo?
  if ( $xpath->query( "self::node()[contains(@class, 'foo')]", $item ) ) {
        print "yes";
    }
    else {
        print "no";
    }
}


Этот код не срабатывает. Даже если вписать несуществующий класс, всё равно выдаст yes (true).

Спасибо!
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
@Shimpanze Автор вопроса
Сам догадался.

Так как xpath возвращает коллекцию, то необходимо просто проверить количество вёрнутых элементов. Сделать это довольно просто:

if ( $xpath->query( "self::node()[contains(@class, 'foo')]", $item )->length ) // класс есть!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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