PHP Doku:: Clones a node - function.domnode-clone-node.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzXML-ManipulationDOM-XMLDOM-XML-FunktionenDomNode->clone_node

Ein Service von Reinhard Neidl - Webprogrammierung.

DOM-XML-Funktionen

<<DomNode->child_nodes

DomNode->dump_node>>

DomNode->clone_node

(PHP 4 >= 4.1.0)

DomNode->clone_node Clones a node

Beschreibung

domelement DomNode->clone_node ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


5 BenutzerBeiträge:
- Beiträge aktualisieren...
sworley at dotster dot com
21.11.2006 23:00
A complete, executable, minimal example of how to copy between documents:

<?
$doc1
= domxml_open_mem('<one><onething/></one>');
$doc2 = domxml_open_mem('<two><twothing/></two>');
$root1 = $doc1->document_element();
$root2 = $doc2->document_element();
$root1->append_child($root2->clone_node(true));
echo
$doc1->dump_mem();
?>

Emits: <one><onething/><two><twothing/></two></one>
krymsonwulf at gmail dot com
5.06.2006 23:41
It seems like this function is non-recursive: cloning a node will not clone it's child nodes in my experience
andrew at transitionmedia dot co dot uk
12.02.2006 16:04
As of version 4.3 PHP doesn't support Appending a child from another source document. If you are trying to  import information from multiple sources into a final document [for transformation using XSL as an example] then you can have problems. This technique can be used to do it though.

I am assuming you have two documents open, $xmldoc1 and $xmldoc2 and you have selected [via XPath or explicit searching] the nodes you want in each document. Thus $xmldoc1_appending_node is the node you would like to add $xmldoc2_importnode to.

<?

// first we create a temporary node within the document we want to add to.
$temp_importnode = $xmldoc1->create_element("import");

// now we have a node that is in the right document context we can clone the one we want into this one.
$temp_importnode = $xmldoc_importnode->clone_node(true);

// by using true in the above call to clone_node() we copy all of the child nodes as well. Use false or nothing if you just want the containing node with no children.

$xmldoc1_appending->append_child($importnode);

?>

Now your document contains the new nodes imported from a different document.
hrz at geodata dot soton dot ac dot uk
11.05.2005 17:28
Passing boolean 'true' as the argument to this function will result in all child nodes being cloned as well.
r dot kamstra at syntomax dot com
8.11.2002 17:06
if a DomNode is duplicated it's siblings and parent are not duplicated



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)