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

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] Modifier un fichier XML en php


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut [SimpleXML] Modifier un fichier XML en php
    bonjour

    j'aimerais pouvoir modifier mon fichier XML depuis mon site php

    j'ai vu pas mal de code et de sujet sur divers sites, mais je n'arrive pas à comprendre / adapter à mon fichier

    surement parce que mon fichier est différent des exemples que je vois

    Code XML : 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
    <?xml version="1.0" encoding="iso-8859-1"?>
     
    <rss version="2.0">
     
    	<channel>
     
    		<item>
     
    			<ligne1>texte à afficher</ligne1>
     
    			<ligne2>texte aussi</ligne2>
     
    			<ligne3>aussi aussi</ligne3>
     
    			<ligne4>ici</ligne4>
     
    		</item>
     
    	</channel>
    </rss>

    j'aimerais donc pouvoir modifier ce qui se trouve dans les nœuds ligne1-2-3-4-5

    je vous remercie d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Montre nous ton code pour qu'on puisse t'aider à la corriger.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Montre nous ton code pour qu'on puisse t'aider à la corriger.
    salut, excusez mon retard

    je n'ai rien comme code, car tous ce que j'ai testé provient de tuto trouvé sur divers site, et à chaque fois la structure de leur fichier divers du mien ...

    il y a souvent des id = ""

    j'aimerais bien garder ma structure car je l'utilise avec un autre programme

    si j'avais un bout de code qui fonctionne avec cette structure ça me suffirait ou alors des explications ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    sabotage tu es toujours là ?

    j'aimerais bien apporter un petit code, mais comment le faire si je ne sais pas par ou commencer

    pour le moment, je sais charger un fichier et sauvegarder avec simpleXML

  5. #5
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    j'aimerais bien apporter un petit code, mais comment le faire si je ne sais pas par ou commencer
    pour le moment, je sais charger un fichier et sauvegarder avec simpleXML
    Bien, ce n'est peut-être pas aussi simple pour quelqu'un qui ne connait pas trop xml en général et ne connait pas trop php spécifique implémentation de dom ... Je vous donne une demo dont vous allez voir des pistes et portes d'entrées pour quelque téchologies comme xpath, dom ...

    D'abord, je ne pense pas c'est bon d'écrire ligne1, ligne2 etc comme nom de balise. Donc, je prends le document xml comme ceci, lefichier.xml.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <rss version="2.0">
        <channel>
            <item>
                <ligne>texte à afficher</ligne>
                <ligne>texte aussi</ligne>
                <ligne>aussi aussi</ligne>
                <ligne>ici</ligne>
            </item>
        </channel>
    </rss>
    Et puis, on fait un script php pour sortie un fichier lefichier_out.xml avec les lignes modifiées.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $f_in="lefichier.xml";
    $f_out="lefichier_out.xml";
    $xml=simplexml_load_file($f_in);
    $nodelist=$xml->xpath("/rss/channel/item/ligne");
    //echo count($nodelist), "\n";
    $n=1;
    while(list( , $node)=each($nodelist)) {
        dom_import_simplexml($node)->nodeValue='ligne#'.($n++);
    }
    $xml->saveXML($f_out);
    Je le fais délibéralement très concis et même cryptique pourque vous devrez travailler sérieusement dessus pour comprendre. Les documentations et examples sont nombreuses là dans le net pour vous aider.

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Par défaut
    Bonjour
    je reviens sur cette discussion car je souhaiterais modifier un fichier XML à partir du PHP.
    Voilà mon fichier XML :

    Code XML : 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
    <connectes>
    <personne>
    <dateheure>12/6/2020-10:42</dateheure>
    <LAT>-20.9022823</LAT>
    <LON>55.480406800000004</LON>
    <ligne>6</ligne>
    <sens>Hôtel de ville St Denis</sens>
    <nom>Titi</nom>
    </personne>
    <personne>
    <dateheure>16/6/2020-20:10</dateheure>
    <LAT>-20.9022823</LAT>
    <LON>55.480406800000004</LON>
    <ligne>7</ligne>
    <sens>Hôtel de ville St Denis</sens>
    <nom>qegqerq</nom>
    </personne>
    </connectes>

    Je souhaitais modifier le contenu de certains noeuds et pour certains les supprimer.
    Le principe est le suivant : je récupère des données de position ainsi qu'un pseudo.
    Si le pseudo n'existe pas j'écris dans le XML le nouveau pseudo avec sa position.
    Si le pseudo existe et que la variable initialisation est à 1 je le modifie en ajoutant des variables aléatoires et je l'enregistre aussi avec le pseudo modifié sur le fichier XML.
    Si la date n'est pas la date du jour je le supprime.
    Dernier cas si le pseudo existe et que la variable initialisation est à zéro Alors je mets à jour ses données de position.
    Pour les deux premiers cas c'est réglé mais pour les dernier cas j'ai quelques soucis.

    Je souhaiterais une fois détectée le pseudo existant mettre à jour les deux champs latitude et longitude voilà le code que j'ai adapté par rapport au dernier post. Mais je ne vois pas comment mettre à jour les données latitude et longitude.
    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
    <?
    $f_in="connectes4.xml";
    $f_out="connectes5.xml";
    $xml=simplexml_load_file($f_in);
    $nodeNom=$xml->xpath("/connectes/personne/nom");
    $nodeLAT=$xml->xpath("/connectes/personne/LAT");
     
    echo count($nodeNom), "\n";
    echo $nodeLAT[0];
    $n=1;
    while(list( , $node)=each($nodeNom)) {
      if(dom_import_simplexml($node)->nodeValue=="qegqerq"){
        dom_import_simplexml($node)->nodeValue='change#'.($n);
        dom_import_simplexml($nodeLAT)->nodeValue='-20change#'.($n);
        $n++;
     
      }
    }
     
    $xml->saveXML($f_out);
    ?>
    Merci d'avance pour vos éclaircissements.

Discussions similaires

  1. [SimpleXML] utiliser un fichier xml dans un fichier html ou php
    Par xez7082 dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 23/01/2012, 18h35
  2. [SimpleXML] Analyser un fichier XML avec PHP
    Par Someone86 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/08/2007, 09h43
  3. [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
  4. [SimpleXML] Comment faire pour transformer un fichier XML en PHP ?
    Par magic8392 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/09/2005, 16h22
  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