Bonjour,
J'ai un souci avec un bout de code php. Le concept est le suivant :
Je désire ajouter une occurrence de new dans un fichier xml à la structure suivante
Code :
- <new id="0">
- <auteur>
- test
- </auteur>
- <titre>
- test
- </titre>
- <texte>
- test
- </texte>
- </new>
- <new id="1">
- <auteur>
- test
- </auteur>
- <titre>
- test
- </titre>
- <texte>
- test
- </texte>
- </new>
|
Voici mon code, si mon fichier existe, je créé un nouvel objet DOMDocument, je charge mon fichier.
Je récupère le nombre d'élements, qui me sert à écrire l'attribut de la nouvelle occurrence que j'essaye d'ajouter.
Code :
- <?php
- if (file_exists("news.xml" )) {
- $doc = new DOMDocument('1.0');
- $doc->load("news.xml" );
- $doc->formatOutput = true;
- $myNodeList= $doc->getElementsByTagName("new" );
- //echo $myNodeList->length;
- $post_auteur = "test";
- $new_element = $doc->createElement('new');
- $auteur = $doc->createElement('auteur',$post_auteur);
- $new_element->appendChild($auteur);
- $title = $doc->createElement('titre',$post_auteur);
- $new_element->appendChild($title);
- $text = $doc->createElement('texte',$post_auteur);
- $new_element->appendChild($text);
- $new_element->setAttributeNode(new DOMAttr('id',$myNodeList->length));
- $doc->appendChild($new_element);
- //echo($doc->saveXML());
- $doc->save("news.xml" );
- }
- else echo("erreur" );
- ?>
|
Le drame étant que, 1 coup sur 2 j'obtient cette erreur :
Citation :
Warning: DOMDocument::load() [function.DOMDocument-load]: Extra content at the end of the document in /mnt/123/sdc/0/7/tonio95/test/news.xml, line: 7 in /mnt/123/sdc/0/7/tonio95/test/add_news.php5 on line 5
|
l'autre fois, mon fichier xml contient la structure présentée plus haut.
J'avoue ne pas bien comprendre ce qu'il se passe, pouvez vous m'éclaicir les idées ?
Merci de votre participation.