note 47542 modified in function.dom-domnode-clonenode by danbrown

From: Date: Fri, 28 Nov 2008 21:54:18 +0000
Subject: note 47542 modified in function.dom-domnode-clonenode by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-147276@lists.php.net to get a copy of this message
simple exemple of node cloning <?xml version="1.0"?> <book type="paperback"> <title name='MAP'>Red Nails</title> <price>$12.99</price> <author> <name first="Robert" middle="E" last="Howard"/> <birthdate>9/21/1977</birthdate> </author> <author> <name first="Arthur" middle="Mc" last="Kayn"/> </author> </book> <?php //filename xml file to use $file = 'book.xml'; $doc = new domDocument; if (file_exists($file)) { $doc->load($file); } else { exit('Erreur !.'); } $xpath = new domXPath($doc); $query = "//author/*"; $xpathQuery = $xpath->query($query); $size = $xpathQuery->length; for ($i=0; $i<$size; $i++){ $node = $xpathQuery->item($i); if ($node->nodeName == 'birthdate' && $node->hasChildNodes() && $node->firstChild->textContent != ''){ $clonenode = $node->cloneNode(true); $refnode = $node; } } for ($i=0; $i<$size; $i++){ $node = $xpathQuery->item($i); if (!$node->isSameNode($refnode)){ $newnode = $node->appendChild($clonenode); } } print $doc->saveXML(); ?> --was-- simple exemple of node cloning <?xml version="1.0"?> <book type="paperback"> <title name='MAP'>Red Nails</title> <price>$12.99</price> <author> <name first="Robert" middle="E" last="Howard"/> <birthdate>9/21/1977</birthdate> </author> <author> <name first="Arthur" middle="Mc" last="Kayn"/> </author> </book> <?php //filename xml file to use $file = 'book.xml'; $doc = new domDocument; if (file_exists($file)) { $doc->load($file); } else { exit('Erreur !.'); } $xpath = new domXPath($doc); $query = "//author/*"; $xpathQuery = $xpath->query($query); $size = $xpathQuery->length; for ($i=0; $i<$size; $i++){ $node = $xpathQuery->item($i); if ($node->nodeName == 'birthdate' && $node->hasChildNodes() && $node->firstChild->textContent != ''){ $clonenode = $node->cloneNode(true); $refnode = $node; } } for ($i=0; $i<$size; $i++){ $node = $xpathQuery->item($i); if (!$node->isSameNode($refnode)){ $newnode = $node->appendChild($clonenode); } } print $doc->saveXML(); ?> http://php.net/manual/en/function.dom-domnode-clonenode.php

« previous php.notes (#147276) next »