带有css选择器的Symfony dom crawler找不到所有匹配项

时间:2016-04-22 02:01:21

标签: css symfony

给出以下html

amzimg 完整的HTML可以在这里找到:http://pastebin.com/B3JASXwx

并使用Dom Crawler代码

$pd->filter('.content > ul > li')->each(function(Crawler $node, $i){})

在循环结果时,它会停留在嵌套在<script>元素下的第一个<ul>标记处,而只返回9个元素,而不是所有14个<li>元素。

这是一个错误,还是设计错误,有没有我可以获得所有<li>项而无需借助preg_match?

1 个答案:

答案 0 :(得分:0)

我已经实现了在将HTML提供给Symfony DOM解析器之前剥离所有。*标签,这似乎已经解决了我遇到的问题。

鉴于标签本身包含DOM修改代码,我猜测Symfony解析器错误地将标签内的DOM标签读取为有效标签,而不是javascript修改。

TL; DR - 在将原始html传递给Symfony之前,请确保删除所有标签