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] Lire des données en fonction de valeurs d%u2019attributs


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Par défaut [SimpleXML] Lire des données en fonction de valeurs d%u2019attributs
    Bonjour à tous,

    Débutant dans le xml, je me permets de poster ici car après plusieurs recherches sur ce forum et sur le net, je n’arrive pas à résoudre mon problème.

    Je dois récupérer des informations dans un fichier xml comme celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <page>
       <langues>
          <langue tag="fr">
             <texte tag="texte-1">Titre en français</texte>
             <texte tag="texte-2">&lt;b&gt;Texte en Français &lt;/b&gt;Lorem ipsum dolor sit amet, nunc.</texte>
          </langue>
          <langue tag="uk">
              <texte tag="texte-1">Title in English</texte>
              <texte tag="texte-2">&lt;b&gt;Text in English &lt;/b&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam nunc.</texte>
          </langue>
       </langues>
    </page>
    Je dois lire le contenu de la balise <texte> en fonction de 2 variables qui chacune représentent une valeur possible des attributs « tag ».
    1ere variable ($langue) contient « uk » ou « fr »
    2eme variable ($expression) contient « texte-1 » ou « texte-2 »
    J’ai essayé avec xpath mais je n’ai pas réussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $page=simplexml_load_file($fichierXML);
    $chemin='page/langues/langue[@tag="'.$langue.'"]/texte[@tag="'.$expression.'"]';
    $contenu=$page->xpath($chemin));
    Pouvez-vous, svp, m’éclairer de vos lanternes.

    Oswalde

  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
    • L'objet SimpleXML correspond à votre racine, il ne faut donc plus faire mention de celle-ci si le chemin est relatif (comme c'est le cas ici)
    • La méthode xpath retourne les résultats sous forme de tableau


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $fichierXML = 'sxml.xml';
    $langue = 'fr';
    $expression = 'texte-1';
     
    $page = simplexml_load_file($fichierXML);
    $chemin = 'langues/langue[@tag="'.$langue.'"]/texte[@tag="'.$expression.'"]';
    $resultats = $page->xpath($chemin);
    if ($resultats) {
        echo $resultats[0];
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Par défaut
    Merci de ces précisions, sans vous je crois que je serai devenu chèvre

    Votre solution correspond exactement à ce dont j'avais besoin

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

Discussions similaires

  1. [XL-2003] Répéter des données en fonction d'une valeur
    Par Korsa dans le forum Excel
    Réponses: 3
    Dernier message: 31/03/2011, 11h32
  2. [Conception] Afficher des données en fonction du mois.
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 05/06/2006, 11h31
  3. [SimpleXML] Récupération des données XML
    Par squalito dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/05/2006, 15h22
  4. [Excel] Lire des données de excel avec php
    Par Eisy dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/03/2006, 18h00
  5. CFile : comment lire des données
    Par romeo9423 dans le forum MFC
    Réponses: 3
    Dernier message: 25/10/2004, 20h10

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