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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    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
    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 Expert
    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
    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;

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    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
    Par défaut
    Super, je teste ça dès que je peux (mercredi)

    A quoi correspond /msi?

    Merci!

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    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
    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 Expert
    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
    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é.

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    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
    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

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