Метод siblings класса Crawler
Метод siblings класса Crawler возвращает
новый объект Crawler, содержащий соседние элементы
текущего узла DOM. Соседними считаются элементы, находящиеся
на одном уровне вложенности с текущим узлом. Метод не принимает
параметров и возвращает все соседние элементы, включая сам
текущий узел, если он соответствует селектору.
Синтаксис
$crawler->siblings(): Crawler
Пример
Давайте создадим объект Crawler с HTML-разметкой
и получим соседние элементы для узла h2:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentDomCrawlerCrawler;
use SymfonyComponentHttpFoundationResponse;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '
<div>
<h1>title</h1>
<h2>subtitle</h2>
<p>text</p>
</div>
';
$crawler = new Crawler($html);
$siblings = $crawler->filter('h2')->siblings();
foreach ($siblings as $node) {
echo $node->nodeName . ' ';
}
return new Response();
}
}
?>
Результат выполнения кода:
"h1 h2 p"
Пример
Давайте получим количество соседних элементов для узла
p:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentDomCrawlerCrawler;
use SymfonyComponentHttpFoundationResponse;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '
<div>
<h1>title</h1>
<h2>subtitle</h2>
<p>text</p>
</div>
';
$crawler = new Crawler($html);
$count = $crawler->filter('p')->siblings()->count();
return new Response($count);
}
}
?>
Результат выполнения кода:
"3"