Глядя на разметку HTML, нужный вам текстовый узел попадает в первый дочерний элемент привязки.Поскольку каждый $node
является экземпляром DOMElement
, вы можете использовать ->firstChild
(для текстового узла), а затем использовать ->nodeValue
:
foreach ($crawler->filter('a.pdt_title') as $node) {
echo $node->firstChild->nodeValue . "\n";
}
Другой альтернативой является использование xpath через ->filterXpath()
, это в документах кстати:
foreach ($crawler->filterXpath('//a[@class="pdt_title"]/text()') as $text) {
echo $text->nodeValue , "\n";
}
Связанные документы:
https://symfony.com/doc/current/components/dom_crawler.html
Запрос xpath просто нацелен на якорь с этим классом, а затемтекст.
Или еще один лайнер.Возвращает массив, извлекающий тексты:
$output = $crawler->filterXpath('//a[@class="pdt_title"]/text()')->extract(array('_text'));
Связанные документы DOM:
http://php.net/manual/en/class.domelement.php
http://php.net/manual/en/class.domnode.php