PHPHtmlParser — $ dom-> gt; find () возвращает только первый результат

Я использую PHP-HTML-парсер пакет (на основе simplehtmldom) загружается через Composer и анализирует строку HTML, однако при использовании $ dom-> find () для обхода всех элементов, которые я ищу, он обнаруживает только первый элемент (из 29).

require __DIR__ . "/vendor/autoload.php";
$dom = new PHPHtmlParser\Dom;
$dom->load($result); // $result is the output of a cURL request
$classes = $dom->find('li[class=SPECIALCLASS]');
echo count($classes);
foreach($classes as $class){
echo $class->text;
}

Выход: 1

Образец HTML:

<li class="SPECIALCLASS "></li>
<li class="SPECIALCLASS SOMEOTHERCLASS "></li>

РЕДАКТИРОВАТЬ: полное удаление селектора класса приводит к возвращению тегов li 5/29, поэтому я чувствую, что здесь есть что-то большее.

1

Решение

Попробуйте что-то вроде этого:

$dom->find('li[contains(@class, "SPECIALCLASS")]');

вместо:

$dom->find('li[class=SPECIALCLASS]');
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]