Aller au contenu

PHP et DOM XML : Mise en forme du fichier


fragmonster

Messages recommandés

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 :



foo
bar


Dans ce fichier je dois insérer un nouveau groupe de balise (que la DTD m'autorise bien entendu) afin d'obtenir ceci :







foo
bar


Mais, après execution de mon script j'obtiens ça :



foo
bar


"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 directement sous

2-Est-il possible d'indenter les balises insérée afin de conserver la lisibilité originale de mon fichier source?

Merci

Lien à poster

Pour l'indentation, c'est possible vu que c'est un fichier, et non une page HTML. Un petit t (ou son ?ivalent sous windwos) devrait faire l'affaire.

Par contre, je ne vois pas pourquoi tu ne r?ris pas le fichier plut??ue d'ins?r. Tu lis ton fichier original que tu stocke dans une variable. Ensuite, avec un parse et/ou une ereg, tu modifie ta variable, puis tu r?ris ton fichier.

Lien à poster

Non, je ne vais pas me prendre le choux avec des regexp alors que la libxml de PHP5 est faite pour ça avec un support total de DOM. En fait je crée un DomDocument à partir de mon fichier source. Je me promène dedans, j'insère ce que je veux via des DomDoc->createElement, appendChild() ...Etc et je sauvegarde le tout dans le fichier d'origine. Malheureusement l'indentation n'est pas appliquée ainsi que le position de mes nouvelles balises.

Bref je voulais savoir si DOM permettait ce genre de chose.

Lien à poster
×
×
  • Créer...