It seems that with zend.ze1_compatibility_mode on, the only way to iterate over the items list is with :for ($i = 0; $i < $nodeList->length; ++$i) { $nodeName = $nodeList->item($i)->nodeName; $nodeValue = $nodeList->item($i)->nodeValue;}

Keep in mind that DOMNodelists are "live" - changes to the document or node that the DOMNodelist was derived from will be reflected in the DOMNodelist. In other words, a list of a parent node's children will change if you change the parent's children!

NodeList are something annoying because you can't output the content with a simple print_r, so I did a little function that add all the node to a new empty DOMDocument and output it as a string.Have fun.