להפוך DomNodeList למערך. PHP – DomDocument – Convert DomNodeList to Assosiative array

xml DomNodeList To php array
Photo by dpstyles™

האובייקטים של DomDocument ב-php הם מתעתעים, היות והם לא מתנהגים כרגיל, ולא מאפשרים לעשות עליהם var_dump וכדומה.

להלן פונקציה פשוטה, לא רקורסיבית, שהופכת DomNodeList למערך אסוציאטיבי.

נא תשומת לב – כדי לקבל DomNodeList אפשר פשוט להשתמש על אוביקט ה-XML במתודה getElementsByTagName

ומה שמקבלים בחזרה – הוא אוביקט DomNodeList


/* Get DomNodeList Object
* and return an assosiative array
* This function is NOT recursive
*/
function DomNodeListToArray(DOMNodeList $domNodeList)
{
$items = $domNodeList;
$headlines = array();

foreach($items as $item) {
$headline = array();

if($item->childNodes->length) {
foreach($item->childNodes as $i) {
$headline[$i->nodeName] = $i->nodeValue;
}
}

$headlines[] = $headline;
}
return $headlines;
}

 

מקור – ההערות של הדוקומטציה http://php.net/manual/en/domdocument.getelementsbytagname.php