Symfony DomCrawler. Состояние фильтра

У меня есть этот скрипт в 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 */
}

2 ответа

Решение

Функция фильтра использует стандартный селектор CSS, поэтому:

foreach ($crawler->filter('[rel="stylesheet"],[type="text/css"]') as $content) {
   /* make things */
}

Должен сделать работу.

AFAIK это невозможно, но вы можете сделать это:

$crawler->filter('[rel="stylesheet"]')->addAll($crawler->filter('[type="text/css"]'));

Это должно решить вашу проблему.

Кроме того, вы также можете фильтровать с помощью xpath.

Другие вопросы по тегам