(PHP 5)
DOMNode::removeChild — Supprime un fils de la liste des enfants
Cette fonction supprime un fils de la liste des enfants.
oldnode
Le fils à effacer.
Si le fils ne peut être effacé, la fonction retourne l'ancien fils.
DOM_NO_MODIFICATION_ALLOWED_ERR
Lancé si le noeud est en lecture seule.
DOM_NOT_FOUND
Lancé si oldnode
n'est pas un fils
de ce noeud.
L'exemple suivant va effacer l'élément chapter de notre document XML.
Exemple #1 Effacement d'un fils
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$book = $doc->documentElement;
// Nous récupérons le chapitre et l'effaçons du livre
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);
echo $doc->saveXML();
?>
L'exemple ci-dessus va afficher :
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> <book id="listing"> <title>My lists</title> </book>
Exemple #2 Préserver l'URI de l'espace de noms du noeud parent
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$book = $doc->documentElement;
// Nous récupérons le chapitre et le supprimons du livre
$chapter = $book->getElementsByTagName('chapter')->item(0);
// copie de l'URI de l'espace de noms
$nsuri = $book->namespaceURI;
// Suppression du noeud enfant
$book->removeChild($chapter);
// Collage de l'URI de l'espace de noms dans le noeud parent
$book->namespaceURI = $nsuri;
?>
Note:
Après l'appel de cette méthode, l'attribut DOMNode::$namespaceURI du noeud parent sera remis à
NULL
. L'exemple ci-dessus montre comment contourner ce phénomène.