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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Génération de fichier XML avec PhP


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Génération de fichier XML avec PhP
    Bonjour à toutes et à tous !

    Je travail à titre scolaire sur la réalisation d'un script en php, permettant de stocker les informations d'un formulaire dans un fichier xml.
    Si dans l'immédiat, la création du fichier s'effectue sans soucis, la réalisation de la structure et des sous noeuds elle, me pose des problèmes :
    Bref voici le code en question :

    Je test si le fichier liste.xml existe, sinon, je le crée : ce code fonctionne bien :
    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
    $fichier = new DOMDocument();
     
    		$fichier->version = '1.0';
    		$fichier->encoding = 'utf-8';
    		$fichier->xmlStandalone = false;
    		$fichier->formatOutput = true;
     
    		$intro = $fichier->createComment("Powered by Eznable");
    		$fichier->appendChild($intro);
    		$intro = $fichier->createComment("Voici les membres de l'équipe de l'ERMeP.");
    		$fichier->appendChild($intro);
     
    		$ERMeP = $fichier->createElement('ERMeP');
    		$fichier->appendChild($ERMeP);
     
    		$fichier->save("./XML/liste.xml");
    ca me donne cette affichage dans mon fichier xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!--Powered by Eznable-->
    <!--Voici les membres de l'équipe de l'ERMeP.-->
    <ERMeP/>
    Ensuite, c'est la que ca se gate pour moi, je cherche à insérer les données récupéré depuis le formulaire :
    Voici le code (oui il n'y a pas les $_POST je les rajouterais par la suite):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $fichier = new DOMDocument();
    		$fichier->load(realpath('./XML/liste.xml'));
    		$fichier->formatOutput = true;
     
    		$categorie = $fichier->createElement('enseignants');
    		$fichier->firstchild->appendChild($categorie);
     
    		$nom = $fichier->createElement('nom', 'pépé');
    		$categorie->appendChild($nom);
     
    		$fichier->save("./XML/liste.xml");
    Un truc très simple, qui devait je pense me donner ce genre d'arborescence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!--Powered by Eznable-->
    <!--Voici les membres de l'équipe de l'ERMeP.-->
    <ERMeP>
    <enseignant>
    <nom>pépé</nom>
    </enseignant>
    </ERMeP>
    Donc ca n'est pas le cas,
    A la place j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!--Powered by Matthias Rolin-->
    <!--Voici les membres de l'équipe de l'ERMeP.-->
    <ERMeP/>
    <enseignants>
      <nom>pépé</nom>
    </enseignants>
    et si je relance une deuxième fois, j'obtiens un warning :
    DOMDocument::load() [domdocument.load]: Extra content at the end of the document in file:///H:/xampp/htdocs/Recherche/Try/XML/liste.xml, line: 5 in H:\xampp\htdocs\Recherche\Try\traitement2.php on line 24

    Et surtout mon fichier xml se transforme en ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0"?>
    <enseignants>
      <nom>p&#xE9;p&#xE9;</nom>
    </enseignants>

    Si quelqu'un peut me renseigner sur mes erreurs, je lui en serais très reconnaissant. Merci.

  2. #2
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <?php
    $fichier = new DOMDocument();
     
    		$fichier->version = '1.0';
    		$fichier->encoding = 'utf-8';
    		$fichier->xmlStandalone = false;
    		$fichier->formatOutput = true;
     
    		$intro = $fichier->createComment("Powered by Eznable");
    		$fichier->appendChild($intro);
    		$intro = $fichier->createComment("Voici les membres de l'équipe de l'ERMeP.");
    		$fichier->appendChild($intro);
     
    		$ERMeP = $fichier->createElement('ERMeP');//on créé l'élément ERMeP
    		$fichier->appendChild($ERMeP);//on le place dans le fichier
     
    		$enseignants = $fichier->createElement('enseignants');//on créé l'element enseignants
    		$ermep = $fichier->getElementsByTagName("ERMeP")->item(0);//on selectionne ERMeP
    		$ermep->appendChild($enseignants);//on le place dedans/
    		$i = 0;
    		while($i != 10){
    			$nom = $fichier->createElement('nom');//on créé un element NOM
    			$node = $fichier->getElementsByTagName("enseignants")->item(0);//on récupère l'element enseignant
    			$node->appendChild($nom);//on place l'element Nom dedans
    			$nom = $fichier->createTextNode('popo');//on créé un noeud texte
    			$node = $fichier->getElementsByTagName("nom")->item($i);// on récupère l'element nom précédement créé
    			$node->appendChild($nom);//on place le noeud dedans.
    			$i++;//on incrémente.
    		}
    		$fichier->save("./XML/liste.xml");
    ?>
    Je ne suis pas expert en manipulation dom mais ceci fonctionne. Compare avec ton code pour comprendre. Je ne saurais pas te l'expliquer plus clairement que ce que j'ai annoté.

    Cordialement, guillaume.

  3. #3
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Ajout d'une précision:

    Tu peux faire ça aussi en php/echo et mettre un header qui va bien ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header ("Content-Type:text/xml");
    echo '<ermep><enseignant><nom>toto</nom><nom>tutu</nom></enseignants></ermep>
    Ca te permet, si tu ne gères pas bien le DomDocument de faire ça en texte .

    Cordialement, guillaume.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bon je teste toussa dans le courant de ce week-end et je vous tiendrais au courant !

    En attendant, merci déjà d'avoir pris le temps de me répondre !

Discussions similaires

  1. [DOM] création de fichier XML avec PHP
    Par cortex007 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 09/12/2007, 11h31
  2. [DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?
    Par ExSter dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 10/05/2006, 11h16
  3. [FPDF] Génération de fichiers PDF avec PHP
    Par deY! dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 10/04/2006, 17h06
  4. [XML] [EXPAT] Parser un fichier xml avec php
    Par Dargos dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 05/04/2006, 12h25
  5. [XML] lire un fichier xml avec php
    Par java_fun dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/03/2006, 12h21

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