[DOM XML] Edition d'un fichier XML
Bonjour,
Avec
PHP Version 4.4.3-dev,
DOM/XML API Version 20020815,
libxml Version 20622,
libxslt Version 1.1.15,
libxslt compiled against libxml Version 2.6.22
Je voulais développer une application de façon à créer un sitemap.xml pour google.
Les informations sont récupérées à partir d'une base MySQL.
Aucun problème à la création, j'obtiens un fichier structuré de la sorte :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url>
<loc>http://www.minsite.com/one.html</loc>
<news:news>
<news:publication_date>2001-08-01</news:publication_date>
</news:news>
</url>
<url>
<loc>http://www.minsite.com/deux.html</loc>
<news:news>
<news:publication_date>2001-08-02</news:publication_date>
</news:news>
</url>
</urlset> |
Ensuite pour ajouter un élément, j'ai deux choix :
1- Recréer mon fichier xml.
2- Editer ce fichier.
Donc avec la première option, sans problème mais ceci impliques consultation MySQL et je voudrais l'éviter, surtout s'il y a beaucoup d'enregistrements.
Mais si j'optes pour la seconde option, j'obtiens un fichier de la sorte :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url>
<loc>http://www.minsite.com/one.html</loc>
<news:news>
<news:publication_date>2001-08-01</news:publication_date>
</news:news>
</url>
<url>
<loc>http://www.minsite.com/deux.html</loc>
<news:news>
<news:publication_date>2001-08-02</news:publication_date>
</news:news>
</url>
<url><loc>http://www.minsite.com/trois.html</loc><news:news><news:publication_date>2001-08-02</news:publication_date></news:news></url></urlset> |
Vous remarquerez que la dernière ligne n'est pas indentée. Et ainsi de suite si je veux ajouter d'autres éléments, la dernière ligne n'est pas indentée après édition.
A savoir que pour l'édition je ne fais qu'un
Code:
$dom = domxml_open_file("sitemap.xml");
suivi de
Code:
$root = $dom->document_element();
Le reste du script est analogue à la création.
Un conseil ?