Symfony 的 DomCrawler。筛选条件
Symfony DomCrawler. Filter condition
我在 Symfony 2 中有这个脚本:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\DomCrawler\Crawler;
class MyController extends Controller
{
....
foreach($crawler->filter('[type="text/css"]') as $content){
/* make things */
}
foreach($crawler->filter('[rel="stylesheet"]') as $content){
/* make things */
}
¿可以 $crawler->filter
接受各种条件并在一个 foreach 中完成吗?例如:
foreach($crawler->filter('[rel="stylesheet"] OR [type="text/css"]') as $content){
/* make things */
}
据我所知,这是不可能的,但你可以这样做:
$crawler->filter('[rel="stylesheet"]')->addAll($crawler->filter('[type="text/css"]'));
这应该可以解决您的问题。
此外,您还可以使用 xpath 进行过滤。
过滤器函数采用标准 CSS 选择器,因此:
foreach ($crawler->filter('[rel="stylesheet"],[type="text/css"]') as $content) {
/* make things */
}
应该完成这项工作。
我在 Symfony 2 中有这个脚本:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\DomCrawler\Crawler;
class MyController extends Controller
{
....
foreach($crawler->filter('[type="text/css"]') as $content){
/* make things */
}
foreach($crawler->filter('[rel="stylesheet"]') as $content){
/* make things */
}
¿可以 $crawler->filter
接受各种条件并在一个 foreach 中完成吗?例如:
foreach($crawler->filter('[rel="stylesheet"] OR [type="text/css"]') as $content){
/* make things */
}
据我所知,这是不可能的,但你可以这样做:
$crawler->filter('[rel="stylesheet"]')->addAll($crawler->filter('[type="text/css"]'));
这应该可以解决您的问题。
此外,您还可以使用 xpath 进行过滤。
过滤器函数采用标准 CSS 选择器,因此:
foreach ($crawler->filter('[rel="stylesheet"],[type="text/css"]') as $content) {
/* make things */
}
应该完成这项工作。