PHPHtmlParser - $ dom-> find()只返回第一个结果

时间:2016-10-04 16:09:52

标签: php html-parsing simpledom

我正在使用via Composer中加载的php-html-parser包(基于simplehtmldom)并解析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>

编辑:完全删除类选择器会导致返回5/29 li标签,所以我觉得这里有更大的内容。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

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

代替:

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