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 :

[XML] Remplacer une portion de xml par une autre


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut [XML] Remplacer une portion de xml par une autre
    Bonjour à tous,

    J'ai un xml :
    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
    <Election>
     <Scrutin>...</Scrutin>
     <Tours>
      <Tour>
       <NumTour>1</NumTour>
        <Mentions>...</Mentions>
        <Resultats>
         <Candidats>
          <Candidat>
           <NumPanneauCand>1</NumPanneauCand>
           <NbVoix>1235187</NbVoix>
          </Candidat>
          <Candidat>
           <NumPanneauCand>2</NumPanneauCand>
           <NbVoix>6938479</NbVoix>
          </Candidat>
          <Candidat>
           [...]
    Dont j'ai trié la partie <Candidats> en fonction de <NbVoix>.
    J'ai donc en sorti un autre xml qui contient uniquement la partie <Candidats> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Candidats>
     <Candidat>
      <NumPanneauCand>2</NumPanneauCand>
      <NbVoix>6938479</NbVoix>
     </Candidat>
     <Candidat>
      <NumPanneauCand>1</NumPanneauCand>
      <NbVoix>1235187</NbVoix>
     </Candidat>
     <Candidat>
           [...]
    Ce que j'aimerais faire, c'est remplacer dans mon premier xml, la partie Candidats par celle que j'ai trié.
    J'ai trouvé la fonction array_splice mais je ne vois pas comment l'utiliser dans mon cas de multidimension...

    Merci par avance!

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Tu peux faire comme ça.

    Code php : 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
    33
    34
    35
     
    $avant = "
    <Election>
     <Scrutin>...</Scrutin>
     <Tours>
      <Tour>
       <NumTour>1</NumTour>
        <Mentions>...</Mentions>
        <Resultats>
         <Candidats>
          <Candidat>
           <NumPanneauCand>1</NumPanneauCand>
           <NbVoix>1235187</NbVoix>
          </Candidat>
          <Candidat>
           <NumPanneauCand>2</NumPanneauCand>
           <NbVoix>6938479</NbVoix>
          </Candidat>
         </Candidats>
      </Resultats>";
     
    $remplacement = "<Candidats>
     <Candidat>
      <NumPanneauCand>2</NumPanneauCand>
      <NbVoix>6938479</NbVoix>
     </Candidat>
     <Candidat>
      <NumPanneauCand>1</NumPanneauCand>
      <NbVoix>1235187</NbVoix>
     </Candidat>
     </Candidats>";
     
     $pattern = "/(<Candidats>.*<\/Candidats>)/msi";
     $apres   = preg_replace($pattern,$remplacement,$avant);
     print $apres;
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Super, je teste ça dès que je peux (mercredi)

    A quoi correspond /msi?

    Merci!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Ben ça ne marche pas du tout...
    Je ne vois même pas ce que c'est censé faire...

  5. #5
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Moi ça me donne...

    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
     
    <Election>
     <Scrutin>...</Scrutin>
     <Tours>
      <Tour>
       <NumTour>1</NumTour>
        <Mentions>...</Mentions>
        <Resultats>
         <Candidats>
     <Candidat>
      <NumPanneauCand>2</NumPanneauCand>
      <NbVoix>6938479</NbVoix>
     </Candidat>
     <Candidat>
      <NumPanneauCand>1</NumPanneauCand>
      <NbVoix>1235187</NbVoix>
     </Candidat>
     </Candidats>
      </Résultats>
    Ce qui correspond à ce que tu as demandé.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    J'ai fait un bête copié collé de ce que tu proposes et voilà le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... 1 ... 2 6938479 1 1235187

  7. #7
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Ben c'est la sortie du xml. Il faut regarder le source de la page pour voir le code xml.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    D'accord mais en sortie je voudrais récupérer l'arbre pas les valeurs

  9. #9
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    As tu regardé le source de la page ?
    Si oui tu auras vu qu'il y a l'arborescence.
    Au lieu de faire la sortie à l'écran il faut que tu sauvegardes le résultat dans un fichier.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Bien sur que c'est fait, mais il n'est pas possible de récupérer l'arbre dans une variable directement?
    Parce que là si je veux l'arbre dans une variable, je suis obligé d'enregistrer le résultat de ta commande dans un fichier puis d'aller lire dans celui-ci?

  11. #11
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Là ça dépasse le cadre de ta demande initiale. A priori tu as tout le xml dans une variable, il faut donc aller voir du côté des instructions de manipulations de données xml ce qui doit faire l'objet d'un autre fil.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. Remplacer un nom de domaine par un autre
    Par Sayrus dans le forum Référencement
    Réponses: 2
    Dernier message: 27/08/2008, 19h30
  2. Réponses: 22
    Dernier message: 27/08/2008, 14h35
  3. Fonction pour remplacer des motifs de mots par d'autre
    Par keketteboy dans le forum VBA Word
    Réponses: 2
    Dernier message: 22/08/2008, 15h16
  4. Remplacer dynamiquement un contenu flash par un autre
    Par Gizmil dans le forum Dynamique
    Réponses: 1
    Dernier message: 28/10/2007, 19h35
  5. Réponses: 2
    Dernier message: 05/09/2007, 22h10

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