DOMXPath/DOMDocument - Как получить foreach из многих элементов с одним и тем же атрибутом

Я использую DOMXPath и DOMDocument для извлечения данных из источника вывода HTML.

Вот мой код:

libxml_use_internal_errors(true); 
$doc = new DOMDocument();
$doc->loadHTMLFile($url);

$xpath = new DOMXpath($doc);

$name = $xpath->query('//td[@data-column-name="Model"]')->item(0)->nodeValue;

Когда я echo $name я получаю только первый результат, который находит этот код. Элементов с <td class=" " data-column-name="Model"> намного больше, но этот код дает мне только первый результат. Должен ли я делать цикл foreach или while и как получить все результаты?

Заранее спасибо!


person Venelin    schedule 04.08.2015    source источник


Ответы (1)


Используйте цикл, например:

foreach ($xpath->query('//td[@data-column-name="Model"]')) as $item) {
    echo $item->nodeValue;
}
person Hans Z.    schedule 04.08.2015
comment
Но что, если мне нужно найти другие элементы и включить их в этот foreach. Например td[@data-column-name="RAM"] Как я могу объединить их в этом цикле foreach? - person Venelin; 04.08.2015
comment
Я считаю, что для этого потребуется отдельный запрос xpath и итерация по его результатам. - person Marty Mulligan; 04.08.2015
comment
Используйте такой цикл: foreach ($xpath-›query('//td/@data-column-name')) as $item) { echo $item-›nodeValue.'‹br›'; } - person Amol Navsupe; 30.05.2018