note 47542 added to function.dom-domnode-clonenode
| From: | oliver dot christen at camptocamp dot com | Date: | Fri, 19 Nov 2004 16:48:29 +0000 |
| Subject: | note 47542 added to function.dom-domnode-clonenode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-80766@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();
?>
----
Manual Page -- http://www.php.net/manual/en/function.dom-domnode-clonenode.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+47542
Delete -- http://master.php.net/manage/user-notes.php?action=delete+47542&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+47542&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+47542&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+47542&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+47542&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+47542&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+47542&report=yes
Search -- http://master.php.net/manage/user-notes.php