X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=php5%2Fxml-template.php;h=e6f92c21888135ef9038a9d79965a85f7d67a5aa;hb=19ada1f1ca1872cfe3210d62b0633702b8d46f51;hp=911a6417064b587945c609d0e62ecfd2f6706ebb;hpb=4f5e553cffa801a29b5aa4b3b2f367f221a148ff;p=xml-template diff --git a/php5/xml-template.php b/php5/xml-template.php index 911a641..e6f92c2 100644 --- a/php5/xml-template.php +++ b/php5/xml-template.php @@ -11,7 +11,8 @@ function XML_Template_process_file($filename, $obj, $clean = 1) function XML_Template_process($node, $obj, $clean = 1) { if (is_a($obj, 'domnode')) { # overwrite - foreach ($node->childNodes as $child) { + for ($i = 0; $i < $node->childNodes->length; ++$i) { + $child = $node->childNodes->item($i); $node->removeChild($child); } @@ -20,17 +21,19 @@ function XML_Template_process($node, $obj, $clean = 1) } $newobj = own_clone_node($obj, $node->ownerDocument); - $node->append_child($newobj); + $node->appendChild($newobj); XML_Template_process($newobj, array(), $clean); } else if (!is_array($obj)) { # overwrite - foreach ($node->childNodes as $child) { + for ($i = 0; $i < $node->childNodes->length; ++$i) { + $child = $node->childNodes->item($i); $node->removeChild($child); } $doc = $node->ownerDocument; $node->appendChild($doc->createTextNode($obj)); } else if (is_associative_array($obj)) { # substitute - foreach ($node->childNodes as $child) { + for ($i = 0; $i < $node->childNodes->length; ++$i) { + $child = $node->childNodes->item($i); $processed = false; if ($child->nodeType == XML_ELEMENT_NODE) { @@ -76,8 +79,9 @@ function XML_Template_process($node, $obj, $clean = 1) $doc = $node->ownerDocument; $frag = $doc->createElement("temporary-fragment"); # ugh - foreach ($node->childNodes as $child) { - $frag->append_child($child); + for ($i = 0; $i < $node->childNodes->length; ++$i) { + $child = $node->childNodes->item($i); + $frag->appendChild($child); $node->removeChild($child); } @@ -87,7 +91,7 @@ function XML_Template_process($node, $obj, $clean = 1) } $newnode = own_clone_node($frag, $frag->ownerDocument); - $node->append_child($newnode); + $node->appendChild($newnode); XML_Template_process($newnode, $instance, $clean); if ($clean) { XML_Template_clean($newnode); @@ -96,12 +100,14 @@ function XML_Template_process($node, $obj, $clean = 1) # remove all the tags - foreach ($node->childNodes as $child) { + for ($i = 0; $i < $node->childNodes->length; ++$i) { + $child = $node->childNodes->item($i); if ($child->name != 'temporary-fragment') { continue; } - foreach ($child->childNodes as $child2) { - $node->append_child($child2); + for ($j = 0; $j < $child->childNodes->length; ++$j) { + $child2 = $child->childNodes->item($j); + $node->appendChild($child2); } $node->removeChild($child); } @@ -122,8 +128,9 @@ function XML_Template_clean($node) # as this is a dummy node, we want to remove it and move everything further up # after we've done any required replacements $doc = $node->ownerDocument; - $parent = $node->parent_node(); - foreach ($node->childNodes as $child) { + $parent = $node->parentNode; + for ($i = 0; $i < $node->childNodes->length; ++$i) { + $child = $node->childNodes->item($i); $node->removeChild($child); $node->insert_before($child, $node); } @@ -167,11 +174,12 @@ function own_clone_node($node, $doc) if (isset($nsuri)) { $attr2->set_namespace($nsuri, $attr->prefix); } - $newnode->append_child($attr2); + $newnode->appendChild($attr2); } } - foreach ($node->childNodes as $child) { - $newnode->append_child(own_clone_node($child, $doc)); + for ($i = 0; $i < $node->childNodes->length; ++$i) { + $child = $node->childNodes->item($i); + $newnode->appendChild(own_clone_node($child, $doc)); } return $newnode; } else {