Comment supprimer un noeud ? HELP ME !!

Petit nouveau ! | 6 Messages

13 avr. 2006, 10:10

Bonjour, je viens de me mettre à XML et DOM et je n'arrive pas à supprimer un noeud dans mon fichier xml.

Voici mon fichier:

Code : Tout sélectionner

<?xml version="1.0"?> <users> <user> <id>0</id> <nom>Admin</nom> <niveau_acces>Configuration</niveau_acces> <role>Technique</role> <password>toto</password> </user> <user> <id>1</id> <nom>Julien</nom> <niveau_acces>Report</niveau_acces> <role>Decideur</role> <password>titi</password> </user> </users>
Je voudrai supprimer un user ayant l'ayant l'id=1 soit :

Code : Tout sélectionner

<user> <id>1</id> <nom>Julien</nom> <niveau_acces>Report</niveau_acces> <role>Decideur</role> <password>titi</password> </user>
S'il vous plait aidez moi car là je trime!!
Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 avr. 2006, 10:30

Si tu trimes c'est que tu as essayé des choses donc montre-les.
Que quelqu'un puisse te dire ce qui ne va pas, plutôt que de te balancer du code tout prêt, sans se servir de ce que tu auras déjà fait.

Petit nouveau ! | 6 Messages

13 avr. 2006, 10:41

Mon code ne va pas beaucoup aider:
// fichier xml à parser
  $file = './xml/users.xml';
 
   // on récupère le contenu du fichier xml
  $data = implode('', file($file));
   
  // on cree un objet DOM
  $dom = new domDocument;
  //on charge le contenu du fichier xml
  $dom->loadXML($data);
  $tab=simplexml_import_dom($dom);
  
// on récupere l'identifiant de l'utilisateur
$id=$_GET["id"];

//suppression du noeud 
//Unset($tab->user[$id]); 

// on sauvegarde le fichier 
$dom->save("./xml/test.xml");
?>
J'ai essayé plusieurs fonctions mais rien n'y fait

Eléphant du PHP | 312 Messages

13 avr. 2006, 10:48

Sans passer par simpleXML, un exemple trouvé dans PHP5 Avancé :
<?php
$xml = "<livre>PHP5 avancé<a-retirer/></livre>";
$xml = utf8_encode($xml);
$document = new DomDocument();
$document->loadXML($xml);
$livre = $document->documentElement;
$livre->removeChild($livre->lastChild);
A mon avis c'est ta fonction unset qui est pas bonne, ça me parait bizarre comme nom de fonction pour supprimer un noeud...