给出以下html
完整的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?
答案 0 :(得分:0)
我已经实现了在将HTML提供给Symfony DOM解析器之前剥离所有。*标签,这似乎已经解决了我遇到的问题。
鉴于标签本身包含DOM修改代码,我猜测Symfony解析器错误地将标签内的DOM标签读取为有效标签,而不是javascript修改。
TL; DR - 在将原始html传递给Symfony之前,请确保删除所有标签