(PHP 5, PHP 7, PHP 8)
DOMDocument::importNode — Importe un nœud dans le document courant
Description
public
DOMDocument::importNode(DOMNode
$node
, bool
$deep
=
false
): DOMNode|false
Liste de paramètres
-
node
-
Le nœud à importer.
-
deep
-
Si défini à true
, cette méthode importera
récursivement le sous-arbre situé sous le nœud
node
.
Note:
Pour copier les attributs des nœuds, le paramètre
deep
doit être défini à true
Valeurs de retour
Le nœud copié ou false
si la copie a échouée.
Erreurs / Exceptions
DOMException est lancé si le nœud ne
peut pas être importé.
Exemples
Exemple #1 Exemple avec domdocument::importNode()
Copie de nœuds entre plusieurs documents.
<?php
$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>Texte dans un fils</child></element></root>");
// Le nœud que nous voulons importer dans le nouveau document
$node = $orgdoc->getElementsByTagName("element")->item(0);
// Création du nouveau document
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;
// Ajout de quelques balises
$newdoc->loadXML("<root><someelement>Texte dans un élément</someelement></root>");
echo "Le nouveau document avant d'y copier le nœud :\n";
echo $newdoc->saveXML();
// Importation du nœud, ainsi que tous ses files, dans le document
$node = $newdoc->importNode($node, true);
// Et on l'ajoute dans le le nœud racine "<root>"
$newdoc->documentElement->appendChild($node);
echo "\nLe nouveau document après y avoir copié les nœuds :\n";
echo $newdoc->saveXML();
?>
L'exemple ci-dessus va afficher :
Le nouveau document avant d'y copier le nœud :
<?xml version="1.0"?>
<root>
<someelement>Texte dans un élément</someelement>
</root>
Le nouveau document après y avoir copié les nœuds :
<?xml version="1.0"?>
<root>
<someelement>Texte dans un élément</someelement>
<element>
<child>Texte dans un fils</child>
</element>
</root>