fragmonster 1 Posté(e) le 28 février 2006 Partager Posté(e) le 28 février 2006 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
Gu ! 0 Posté(e) le 28 février 2006 Partager Posté(e) le 28 février 2006 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
fragmonster 1 Posté(e) le 28 février 2006 Auteur Partager Posté(e) le 28 février 2006 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
Messages recommandés