Bonjour !
Je cherche à mettre à jour un fichier XML en rajoutant des noeuds.
J'y arrive trés bien, sauf qu'après chaque noeud que je souhaite ajouter, s'ajoute un nouveau noeud qui n'a rien à faire là...
Voici l'architecture de mon fichier xml :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <racine> <nouvelle> <date>4 Juin 2007</date> <texte>un texte</texte> </nouvelle> <nouvelle> <date>5 Juin 2007</date> <texte>un autre texte</texte> </nouvelle> </racine>
Voici maintenant comment je rajoute un noeud à mon fichier xml :
En faisant cela, j'espère modifier mon fichier xml de manière à ce qu'il ressemble à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $doc = new DOMDocument(); $doc->load($fichierXML); $racine = $doc->documentElement; $nouvellenouvelle = $doc->createElement("nouvelle"); $nouvelledate = $doc->createElement("date"); $nouveautexte = $doc->createElement("texte"); $noeudtextedate = $doc->createTextNode((string)$_POST['jour']." ".(string)$_POST['mois']." ".(string)$_POST['annee']); $noeudtextetexte = $doc->createTextNode((string)$_POST['texte']); $nouvelledate->appendChild($noeudtextedate); $nouveautexte->appendChild($noeudtextetexte); $nouvellenouvelle->appendChild($nouvelledate); $nouvellenouvelle->appendChild($nouveautexte); $racine->appendChild($nouvellenouvelle); echo $doc->saveXML()."\n"; $doc->save($fichierXML);
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <racine> <nouvelle> <date>4 Juin 2007</date> <texte>un texte</texte> </nouvelle> <nouvelle> <date>5 Juin 2007</date> <texte>un autre texte</texte> </nouvelle> <nouvelle> <date>6 Juin 2007</date> <texte>un autre texte rajouté par le script php</texte> </nouvelle> </racine>
D'ailleur, la ligne
echo $doc->saveXML()."\n";
Me confirme que mon fichier ressemble bien à ce que je voulais.
Pourtant, quand je regarde le fichier xml enregistré par $doc->save($fichierXML);
un autre noeud "nouvelle" apparaît tout à la fin de mon xml qui du coup ressemble à ca :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <racine> <nouvelle> <date>4 Juin 2007</date> <texte>un texte</texte> </nouvelle> <nouvelle> <date>5 Juin 2007</date> <texte>un autre texte</texte> </nouvelle> <nouvelle> <date>6 Juin 2007</date> <texte>un autre texte rajouté par le script php</texte> </nouvelle> <nouvelle> <date> </date> <texte/> </nouvelle> </racine>
Bref, je ne comprends pas d'où vient ce "noeud fantôme", et j'en suis bien embêté...
Pourriez-vous m'aider à comprendre ce shmilblick ?
Partager