Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
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 28/02/2006, 10h06   #1
Invité régulier
 
Inscription : janvier 2005
Messages : 41
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 41
Points : 7
Points : 7
Par défaut [DOMXML] Mise en forme du fichier

Bonjour,
j'ai besoin de manipuler des fichiers XML en PHP. Par "manipuler" j'entends extraire des noeuds et en insérer.

Pour l'extraction : pas de souci avec XPath

Par contre, pour l'insertion, c'est un peu plus compliqué. Non pas que celà ne fonctionne pas, mais j'ai des souci de mise en forme de mon fichier.

Prenons un exemple de fichier XML source, dans lequel je dois insérer des données :
Code XML :
1
2
3
4
5
6
7
 
<A>
     <Objects>
          <Obj>foo</Obj>
          <Obj>bar</Obj>
     </Objects>
</A>

Dans ce fichier je dois insérer un nouveau groupe de balise (que la DTD m'autorise bien entendu) afin d'obtenir ceci :
Code XML :
1
2
3
4
5
6
7
8
9
10
11
 
<A>
     <New>
          <Data1></Data1>
          <Data1></Data1>
     </New>
     <Objects>
          <Obj>foo</Obj>
          <Obj>bar</Obj>
     </Objects>
</A>

Mais, après execution de mon script j'obtiens ça :
Code XML :
1
2
3
4
5
6
7
 
<A>
     <Objects>
          <Obj>foo</Obj>
          <Obj>bar</Obj>
     </Objects>
<New><Data1></Data1><Data1></Data1></New></A>
"XMLement" parlant c'est valide. La DTD est bien respectée. Par contre, mon fichier source qui était correctement indenté devient vite désordonné, d'où mes 2 questions :

1-Est-il possible d'insérer mon groupe <New> directement sous <A>
2-Est-il possible d'indenter les balises insérée afin de conserver la lisibilité originale de mon fichier source?

Merci
fragmonster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 17h43   #2
Membre actif
 
Avatar de ghostdogpr
 
Étudiant
Inscription : octobre 2003
Messages : 198
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2003
Messages : 198
Points : 195
Points : 195
Envoyer un message via MSN à ghostdogpr Envoyer un message via Skype™ à ghostdogpr
Pour ta première question : tu as utilisé append_child() pour l'insertion ?
Pour insérer en tête, va voir du coté de insert_before.
ghostdogpr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 12h02   #3
Invité régulier
 
Inscription : janvier 2005
Messages : 41
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 41
Points : 7
Points : 7
Oui, c'est bon j'ai réglé le problème avec un insertBefore.

Par contre pour la mise en forme j'ai trouvé un $dom->formatOutput = TRUE;

Mais ça ne marche pas. En creusant un peu il s'avère que le formatOutput n'a pas l'air de marcher lorsque le DOMdocument est créé à partir d'un load() (à partir d'un fichier quoi). C'est un bug de PHP5 en gros. Ca m'arrange pas
fragmonster 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 06h08.


 
 
 
 
Partenaires

Hébergement Web