[PHP]Supprimer un élément avec removeChild()
Utilisateur anonyme
-
avion-f16 Messages postés 19182 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19182 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, depuis environ une dizaine d'heure (voir plus) ^^ j'essaye de supprimer un élément de mon fichier XML avec removeChild() de l'API DOM mais rien ne marche et la doc ne m'aide pas du tout.
Voici mes codes :
Code : XML
Et le code php que j'utilise mais qui ne marche pas
Code : PHP
Et j'obtiens cette erreur :
Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in index.php:29 Stack trace: #0 index.php(29): DOMNode->removeChild(Object(DOMElement)) #1 {main} thrown in index.php on line 29
--
~~~~~~~>>>M@x|M€<<<~~~~~~~
troll --all --geek --nolife
Voici mes codes :
Code : XML
<?xml version="1.0" encoding="utf-8"?> <!--Configuration--> <site> <menu> <titre>Pomme</titre> <titre>Poire</titre> <titre>Abricot</titre> </menu> </site>
Et le code php que j'utilise mais qui ne marche pas
Code : PHP
$dom = new DomDocument();
$dom->load('def.xml');
$ligne = $dom->getElementsByTagName('titre')->item(2); //item(2) parle de l'element Abricot
$dom->removeChild($ligne);
$dom->save('def.xml'); // enregistrement
Et j'obtiens cette erreur :
Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in index.php:29 Stack trace: #0 index.php(29): DOMNode->removeChild(Object(DOMElement)) #1 {main} thrown in index.php on line 29
--
~~~~~~~>>>M@x|M€<<<~~~~~~~
troll --all --geek --nolife
1 réponse
-
Salut.
C'est tout à fait normal.
Ce n'est pas $dom qui contient le noeud que tu souhaites supprimer, mais le noeud "menu".
Voilà un code qui fonctionne.<?php $dom = new DomDocument(); $dom->load('def.xml'); $menu = $dom->getElementsByTagName('menu')->item(0); $ligne = $menu->getElementsByTagName('titre')->item(2); $menu->removeChild($ligne); $dom->save('def.xml'); ?>