Hello !

Je cherche un moyen de structurer un document XML que je modifie grâce à un script PHP en utilisant DOM.

J'ai un document de type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<niveau 1>
 
     <info niveau1>...</info niveau1>
 
     <item>
          <info item>...</info item>
     </item>
 
     <item>
          <info item>...</info item>
     </item>
 
</niveau 1>
A chaque lancement du script, on ajoute un nouvel item en première position (entre info niveau1 et le premier item).
Ça fonctionne très bien pour l'insertion, l'indentation, mais pas pour conserver les retours à la ligne. Dès que le script est exécuté, toutes les lignes se retrouvent coller les unes aux autres.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<niveau 1>
     <info niveau1>...</info niveau1>
     <item>
          <info item>...</info item>
     </item>
     <item>
          <info item>...</info item>
     </item>
</niveau 1>
De plus, je ne sais pas non plus comment les ajouter moi-même entre chaque item.

Afin de permettre l'indentation, j'utilise juste après l'instanciation de DOM :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$dom->preserveWhiteSpace = false;
Il semblerait que ce soit cette ligne qui supprime automatiquement les retour à la ligne supplémentaires. Sauf que sans celle-ci, l'indentation dans le fichier ne fonctionne pas. Donc soit j'indente, soit je garde mes retour chariots. Moi, il me faut les deux, il y a t'il un moyen ?



Bref :
1) Comment "insérer" un retour à la ligne entre deux <item>
2) Comment conserver les retour à la ligne se trouvant de base dans le fichier (par exemple entre <niveau1> et <info niveau1>), tout en ayant une indentation correcte dans le fichier.

Merci d'avance.