Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/11/2006, 14h39   #1
En attente de confirmation mail
 
Inscription : novembre 2003
Messages : 82
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France

Informations forums :
Inscription : novembre 2003
Messages : 82
Points : 53
Points : 53
Par défaut [DOM] Indentation du xml généré

Bonjour,

je crée avec les fonctions dom un fichier xml.
le fichier se génère bien, mais le code xml n'est pas indenté.

Ce fichier devant être relu par des personnes, j'aurais aimé savoir s'il était possible d'indenter le code source généré, s'il existait une fonction.

Merci beaucoup.
Elmilouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 14h44   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Il faut mettre l'attribut formatOutput de l'objet DomDocument à true.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 15h03   #3
En attente de confirmation mail
 
Inscription : novembre 2003
Messages : 82
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France

Informations forums :
Inscription : novembre 2003
Messages : 82
Points : 53
Points : 53
Merci de ta réponse très rapide.
Malheureusement, je n'arrive pas à avoir le résultat que je souhaite.
Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?php
	$titre = $_POST['titre'];
 
	$dom = new DomDocument();
	$dom->load('test.xml');
 
	$nouvelItem = $dom->createElement("item");
 
	$nouveauTitre = $dom->createElement("titre");
	$nouveauTitre->appendChild($dom->createTextNode($titre));
	$nouvelItem->appendChild($nouveauTitre);
 
	$items = $dom->getElementsByTagName("items")->item(0);
	$items->appendChild($nouvelItem);
 
	$dom->formatOutput = true;
	$dom->save('test.xml');
 
?>
Le résultat est toujours le même, le nouvel élément "item" est créé sur une seule ligne.

Edit:
Si mon code ne charge pas un fichier existant mais en crée un nouveau, le nouveau fichier est bien indenté:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?php
	$titre = $_POST['titre'];
 
	$dom = new DomDocument();
 
	$nouvelItem = $dom->createElement("item");
 
	$nouveauTitre = $dom->createElement("titre");
	$nouveauTitre->appendChild($dom->createTextNode($titre));
	$nouvelItem->appendChild($nouveauTitre);
 
	$items = $dom->createElement("items");
	$items->appendChild($nouvelItem);
 
        $dom->appendChild($items);
	$dom->formatOutput = true;
	$dom->save('test.xml');
 
?>
Elmilouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h14.


 
 
 
 
Partenaires

Hébergement Web