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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
$dom = domxml_open_file("sitemap.xml");
suivi de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$root = $dom->document_element();
Le reste du script est analogue à la création.
Un conseil ?