Получить все элементы, имеющие атрибут itemprop

Я использую PHP DomDocument и пытаюсь очистить что-то похожее на это:

<div itemprop='movie'>Fight Club</div> 

он также может выглядеть так:

 <span itemprop='musician'>Ozzy Osbourne</span> 

Я хочу захватить все itemprop='n' на странице и поместить их в массив для хранения своего значения nodevalue и связанного с ним имени itemprop. Мой код выглядит так:

 function getItemprops(){ foreach($this->dom->getAttribute("itemprop") as $buffer) { $itempropList = array( 'theNodeValue' => $buffer->nodeValue, 'theItemprop' => $buffer->getAttribute("itemprop") ) return $itempropList; } } 

Мой код должен получить массив где-то рядом:

 array ( array( 0 => "theNodeValue" => "Fight Club", "theItemprop" => "movie" 1 => "theNodeValue" => "Fight Club", "theItemprop" => "movie" ) ) 

К сожалению, мой код возвращает Fatal error: Call to undefined method DOMDocument::getAttribute() .

Поэтому в основном я хочу выделить все itemprop="" " и поместить их в массивы.

Спасибо за помощь!

Вы должны использовать XPath, чтобы сначала выбрать все узлы с вашим обязательным атрибутом, затем цикл trhough возвращенных узлов для получения значения текста и значения атрибута; как это

 $d = new DOMDocument(); $d->loadHTML($xmlsource); $xpath = new DOMXPath($d); $nodes = $xpath->query('//*[@itemprop]'); //this catches all elements with itemprop attribute foreach ($nodes as $node) { // do your stuff here with $node