note 39423 deleted from ref.domxml by sobak

From: Date: Tue, 22 Nov 2016 03:41:40 +0000
Subject: note 39423 deleted from ref.domxml by sobak
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-207411@lists.php.net to get a copy of this message
Note Submitter: ngc(dontSpamMe)rapanden(SpamOFF)dk ---- Sorry, a bug in my code... I made the first version late at night, sorry! The bug was in the "if ($ChildDomNode->has_child_nodes())" block, I didn't save the data for the for the CildNode of the CildNodes. the bug has been fixed. <?php function getElementAttributes($DomNode,$elementName,$attriName) { if ($ChildDomNode = $DomNode->first_child()) { while($ChildDomNode) { if ($ChildDomNode->node_type() == XML_ELEMENT_NODE) { if($ChildDomNode->node_name() == $elementName) { if ($ChildDomNode->has_attributes()) { $Array = $ChildDomNode->attributes(); foreach ($Array AS $DomAttribute) { if($DomAttribute->name() == $attriName) { $nodeArray[] = $DomAttribute->value(); } }// foreach ($Array AS $DomAttribute) }//if ($ChildDomNode->has_attributes()) } if ($ChildDomNode->has_child_nodes()) { $tmpArray = (getElementAttributes($ChildDomNode,$elementName,$attriName)); $nodeArray = array_merge($nodeArray, $tmpArray); unset($tmpArray); }// if ($ChildDomNode->has_child_nodes()) }//if ($ChildDomNode->node_type() == XML_ELEMENT_NODE) $ChildDomNode = $ChildDomNode->next_sibling(); }//while($ChildDomNode) return $nodeArray; }//if ($ChildDomNode = $DomNode->first_child()) } $file = "test3.xml"; $element = "pb"; $att = "id"; $DomDocument = domxml_open_file($file); $RootDomNode = $DomDocument->document_element(); $array = getElementAttributes($RootDomNode,$element,$att); echo "<pre>"; print_r($array); echo "</pre>"; ?>

« previous php.notes (#207411) next »