Php phtmlparser-$dom->;find()只返回第一个结果
我正在使用通过Composer加载的包(基于),并解析HTML字符串,但是当使用$dom->find()循环遍历我正在搜索的所有元素时,它只检测到第一个元素(共29个) 产出:1 示例HTML:Php phtmlparser-$dom->;find()只返回第一个结果,php,html-parsing,simpledom,Php,Html Parsing,Simpledom,我正在使用通过Composer加载的包(基于),并解析HTML字符串,但是当使用$dom->find()循环遍历我正在搜索的所有元素时,它只检测到第一个元素(共29个) 产出:1 示例HTML: <li class="SPECIALCLASS "></li> <li class="SPECIALCLASS SOMEOTHERCLASS "></li> 编辑:完全删除类选择器会导致返回5/29 li标记,因此我感觉这里有更大的作用。尝试以下方
<li class="SPECIALCLASS "></li>
<li class="SPECIALCLASS SOMEOTHERCLASS "></li>
编辑:完全删除类选择器会导致返回5/29 li标记,因此我感觉这里有更大的作用。尝试以下方法:
而不是:
如果您尝试:foreach($dom->find('li[class=SPECIALCLASS]')as$element){}我刚刚安装了php html解析器,并用示例输入测试了您的脚本,它按预期返回2。因此,可能问题出在示例HTML上。这似乎有很大帮助,但我现在得到了7个结果(共29个),当我尝试循环它们以查看结果时,我的find()->text或find()->innerHTML并没有立即运行代码,因此我们可以看到问题所在@莱埃洛
<li class="SPECIALCLASS "></li>
<li class="SPECIALCLASS SOMEOTHERCLASS "></li>
$dom->find('li[contains(@class, "SPECIALCLASS")]');
$dom->find('li[class=SPECIALCLASS]');