Erreur xml

dalichar Messages postés 8 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 19 mai 2010 - 11 mai 2010 à 01:30
dalichar Messages postés 8 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 19 mai 2010 - 19 mai 2010 à 14:55
Bonjour,

j'ai un fichier xml dans lequel j'arrive à ajouter des noeuds sans problèmes, mais quand je veux les supprimer c'est une autre histoire.

mon fichier xml est de la forme :
<?xml version="1.0" encoding="ISO-8859-1"?>
  <rss>
    <channel id="newsXML">
      
<title>flux rss</title>
<description>Le site possède un flux rss ! Abonnez-vous et vous serez    informé en permanence des nouveautés du site.
</description>
2007-09-14


     
   </channel>
</rss>


mon code pour ajouter un noeud (à titre indicatif) est :
   //--- création d'un nouveau noeud ---
   public function ajouter ($itempere, $item, $contenu) {
      // création du nouveau noeud
      $nouveauNoeud = $this->dom->createElement($item, $contenu);
  // ajout du noeud é la fin du noeud pére
  $element = $this->dom->getElementsByTagName($itempere) ;
  $element->item($element->length-1)->appendChild($nouveauNoeud); 
  $this->sauve () ;
   }


enfin, mon code pour supprimer un noeud est :
   public function supprimer ($itempere) { 
      $element = $this->noeud->item($this->num) ;
      $result = $this->dom->documentElement->removeChild($element);
  
  $this->sauve () ;
   }


Problème :
Lorsque, dans le fichier Xml j'enlève la balise <rss></rss>, la suppression fonctionne très bien !
lorsque je la rajoute j'ai une erreur très longue qui commence par :

Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in

Je pense donc que c'est un problème de positionnement de noeud à cause de la balise rss, mais je ne comprend pas du tout, qu'est ce qu'il faut que je change ...

Je vous remercie d'avance de l'aide que vous pourrez m'apporter,
Romain

3 réponses

Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
11 mai 2010 à 10:23
A vue de nez je pense que cette exception est levee a l'ajout par $element = $this->dom->getElementsByTagName($itempere);

Il ne trouve pas l'item pere et donc jette une exception.
Sa parait logique si tu retire la root node qui est la mere de toutes les autres c'est dure de la reajouter en tant que root node en cherchant la node mere car il n'y a pas de mere du coup ^^

Voila pas d'autre idee pour le moment je sais pas si ca t'aidera, il me faudrai plus de details pour pouvoir mieux t'aider.
0
dalichar Messages postés 8 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 19 mai 2010
17 mai 2010 à 00:49
Heu je suis complètement perdu XD
j'ai compris ta réponse, je comprend le problème mais je n'arrive pas à le résoudre.

Comment se fait-il que l'ajout de news fonctionne correctement, avec ou sans balises <rss> ?
je pense que le problème de suppression vient effectivement de ce que tu me dis, mais sur : $element = $this->noeud->item($this->num) ;

Que voudrait-tu comme détails en plus ?
n'y aurait-il pas "quelquechose" a rajouter sur $element = $this->noeud->item($this->num) ; ??

merci de ton aide :D
0
dalichar Messages postés 8 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 19 mai 2010
19 mai 2010 à 14:55
up svp !
0
Rejoignez-nous