]> git.sesse.net Git - xml-template/blobdiff - php5/xml-template.php
Fix including in php5.
[xml-template] / php5 / xml-template.php
index e68c2be45842a4c4da9bd389de21cee26ee1be7a..2a527d2184f513188fcdd694cafa1d027951b0c5 100644 (file)
@@ -11,19 +11,19 @@ function XML_Template_process_file($filename, $obj, $clean = 1)
 function XML_Template_process($node, $obj, $clean = 1)
 {
        if (is_a($obj, 'DOMNode')) {                          # overwrite
-               for ($i = 0; $i < $node->childNodes->length; ++$i) {
-                       $child = $node->childNodes->item($i);
+               while ($node->childeNodes->length > 0) {
+                       $child = $node->childNodes->item(0);
                        $node->removeChild($child);
                }
 
                if (is_a($obj, 'DOMDocument')) {
-                       $obj = $obj->document_element();
+                       $obj = $obj->documentElement;
                }
 
-               $newobj = $obj->cloneNode(true);
-               $node->appendChild($newobj);
-
-               XML_Template_process($newobj, array(), $clean);
+               $frag = $node->ownerDocument->createDocumentFragment();
+               $frag->appendXML($obj->ownerDocument->saveXML($obj));
+               XML_Template_process($frag, array(), $clean);
+               $node->appendChild($frag);
        } else if (!is_array($obj)) {                         # overwrite
                for ($i = 0; $i < $node->childNodes->length; ++$i) {
                        $child = $node->childNodes->item($i);