IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier un fichier XML et garder sa mise en forme [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Par défaut Modifier un fichier XML et garder sa mise en forme
    Bonjour,

    Comme le dit le titre, je souhaite modifier un fichier XML (rajouter des données en fait) via ma page PHP. J'ai réussi à le faire avec SimpleXML et DOMDocument, mais ni avec l'un ni avec l'autre je n'ai réussi à conserver une mise en forme lors de l'ajout de donnée.

    Voici ma fonction (simplifiée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $doc = new DOMDocument("1.0");
    $doc->load($cheminXml);
    $doc->formatOutput=TRUE;
    $infos = Array();
     
    $root = $doc->documentElement;
    $newContact = $doc->createElement("contact");
    	$infos["id"]		= $doc->createElement("id", $id);
    	$infos["nom"]		= $doc->createElement("nom", $nom);
    	$infos["ville"]		= $doc->createElement("ville", $ville);
    	$infos["cp"]		= $doc->createElement("cp", $cp);
    	$infos["pays"]		= $doc->createElement("pays", $pays);
    	$infos["mail"]		= $doc->createElement("mail", $mail);
     
    foreach($infos as $info)
    	$newContact->appendChild($info);
     
    $root->appendChild($newContact);
    $doc->save($cheminXml);
    Savez-vous ce qui cloche ?

    Merci d'avance !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    SimpleXML ne permet pas de formater le document. Dom, oui, à condition d'ajouter, en plus de l'attribut formatOutput à TRUE, preserveWhiteSpace à FALSE avant le chargement du document (méthodes load*) afin d'ignorer cette mise en forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $doc->preserveWhiteSpace = FALSE;

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Par défaut
    Merci beaucoup pour cette réponse : ça marche !
    Tu m'enlèves une fière chandelle du pied !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD18] Garder la mise en forme d'un fichier XML
    Par jacquesprogram dans le forum WinDev
    Réponses: 11
    Dernier message: 17/09/2013, 15h21
  2. Réponses: 2
    Dernier message: 01/02/2012, 15h02
  3. [XML-XSLT]Modifier un fichier XML grâce à un formulaire
    Par Maurice Fallou dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 16h57
  4. [VB NET]: Modifier un fichier XML via un DataSet
    Par ADONET dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/02/2006, 18h54
  5. [DOM] [Débutant(e)] Modifier un fichier XML avec DOM
    Par macks dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/07/2005, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo