[PHP]Supprimer un élément avec removeChild()
Utilisateur anonyme
-
avion-f16 Messages postés 20367 Statut Contributeur -
avion-f16 Messages postés 20367 Statut Contributeur -
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
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
A voir également:
- [PHP]Supprimer un élément avec removeChild()
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Impossible de supprimer un fichier - Guide
- Supprimer pub youtube - Accueil - Streaming
- Comment supprimer un compte gmail - Guide
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.
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');
?>