Можно ли изменить данный функционал. PHP

Можно ли получить src не только в img, а во всех тегах с атрибутом src?

<?php

$txt = 'Lorem Lorem Lorem <img src="path/img1.jpg"/> LoremLoremLoremLorem
LoremLorem Lorem <img src="path/img2.jpg" /> LoremLoremLorem
LoremLoremLorem
LoremLorem <img src="path/img3.jpg" />.';

$dom = new DomDocument();
$dom->loadHTML($txt);

foreach($dom->getElementsByTagName('img') as $node) {
    var_dump( $node->getAttribute('src') );
}


Ответы (1 шт):

Автор решения: Алексей Шиманский

Можно сделать как указали в комментариях:

$dom->getElementsByTagName('*')

и затем проверять внутри цикла

$element->hasAttribute('src')

А есть вариант сразу через xpath выбрать все элементы с таким атрибутом:

$dom = new DOMDocument();
$dom->loadHTML($txt);
$xpath = new DomXpath($dom);

foreach ($xpath->query('//*[src]') as $node) {
    
}

Не уверен до конца, что сработает. Но у css есть такая опция. А парсинг DOM происходит примерно по этому приницпу.

Note: Возможно вместо '//*[src]' должно быть '//*[@src]'

→ Ссылка