Метод extract()
возвращает значение аттрибута и/или ноду из заданного списка. Вы можете использовать специальный атрибут _text
что бы получить значение ноды. В Symfony 3.4 вы можете так же использовать новый специальный атрибут _name,
что бы получить имя элементы (название HTML тэга):
$attributes = $crawler->filterXPath('//body/*')
->extract(['_text', '_name', 'class'])
;
Когда нода пустая вызов методов text()
и html()
выбросят исключение \InvalidArgumentException
с сообщением «The current node list is empty.». В Symfony 4.3 в эти методы можно передать параметр, который будет возвращен в случае если нода пустая, то есть вы можете задать значение по умолчанию:
// return an empty string instead of throwing an exception
$title = $crawler->filter('aside h3')->text('');
// return a default HTML content instead of throwing an exception
$userProfile = $crawler->filter('.user-profile')->html('Anonymous User');