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

Langage PHP Discussion :

simplexml et xpath XML


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut simplexml et xpath XML
    Bonjour à tous,

    Je suis nouveau sur ce forum, et je bricole en php.

    J'ai besoin d'arriver à lire des attributs d'un noeud dans mon fichier xml et de stocker leurs valeurs dans des variables.

    Je récupère le chemin par 2 $_GET.

    le premier me donne le nom du noeud parent exemple:anglais1 et le second le numéro du noeud exemple:0.

    Je voudrais savoir comment procéder, car je ne compte pas lire le fichier xml entier, mais simplement ces valeurs là.

    J'ai lu de nombreux tutos , mais je ne m'en sors pas, même en tapant le chemin direct avec xpath.

    voici une partie de mon xml pour compléter.

    d'avance merci à tous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
     
    <xml>
     
    	<params item_1="Date : " item_2="Nombre d'heures : " item_3="Programme : " item_4="Lieu du stage : " item_5="Nombre de place(s) disponible(s) : " item_6="Tarif : " urlParams=""/>
     
    	<anglais1>
    		<stages titre="Stage FCL 1.028 (IFR-VFR)" date="Du 12/01 au 16/01." heures="30 Heures." programme="Ecoute, phrases d'urgence, vols fictifs." lieu="Toulouse" places="8 places" tarif="620 euros" type="1028" urlParams=""/>
    		<stages titre="Stage FCL 1.200 (IFR-VFR)" date="Du 19/01 au 23/01." heures="30 Heures." programme="Ecoute, phrases d'urgence, vols fictifs." lieu="Toulouse" places="8 places" tarif="650 euros" type="1200" urlParams=""/>
    </anglais1>
    </xml>

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Dans ton cas

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $xml = new SimpleXMLElement($tonXML);
     
    echo $xml->anglais1[0];
    // ou alors (je crois, car je suis pas expert) :
    echo $xml->anglais1->stages[0];
    ?>

    non ?

    EDIT : ouais non en fait c'est pas ça vu que tu dois récup les attributs... je me renseigne vite fait

    EDIT 2 :

    bon j'ai trouvé ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $xml = new SimpleXMLElement($tonXML);
    echo $xml->anglais1->stages[0]['titre'];

    Ca marche bien mais j'ai voulu faire un foreach() ça n'a pas marché... je creuse un peu le code de mon côté ^^


    EDIT 3 : tout marche

    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
    <?php
    $xmlstr = <<<XML
    <?xml version="1.0" encoding="UTF-8"?>
     
    <xml>
     
    	<params item_1="Date : " item_2="Nombre d'heures : " item_3="Programme : " item_4="Lieu du stage : " item_5="Nombre de place(s) disponible(s) : " item_6="Tarif : " urlParams=""/>
     
    	<anglais1>
    		<stages titre="Stage FCL 1.028 (IFR-VFR)" date="Du 12/01 au 16/01." heures="30 Heures." programme="Ecoute, phrases d'urgence, vols fictifs." lieu="Toulouse" places="8 places" tarif="620 euros" type="1028" urlParams=""/>
    		<stages titre="Stage FCL 1.200 (IFR-VFR)" date="Du 19/01 au 23/01." heures="30 Heures." programme="Ecoute, phrases d'urgence, vols fictifs." lieu="Toulouse" places="8 places" tarif="650 euros" type="1200" urlParams=""/>
    </anglais1>
    </xml>
    XML;
     
    $xml = new SimpleXMLElement($xmlstr);
    echo $xml->anglais1->stages[0]['titre'];
     
    echo "<ul>";
    foreach( $xml->anglais1->stages AS $k => $v ) {
    	echo "<li>".$k."<ul>";
    	foreach( $xml->anglais1->stages->attributes() AS $kk => $vv ) {
    		echo "<li>".$kk." => ".$vv."</li>";
    	}
    	echo "</ul></li>";
    }
    echo "</ul>";
    ?>

    Ceci affichera :
    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
    Stage FCL 1.028 (IFR-VFR)
     
        * stages
              o titre => Stage FCL 1.028 (IFR-VFR)
              o date => Du 12/01 au 16/01.
              o heures => 30 Heures.
              o programme => Ecoute, phrases d'urgence, vols fictifs.
              o lieu => Toulouse
              o places => 8 places
              o tarif => 620 euros
              o type => 1028
              o urlParams => 
        * stages
              o titre => Stage FCL 1.028 (IFR-VFR)
              o date => Du 12/01 au 16/01.
              o heures => 30 Heures.
              o programme => Ecoute, phrases d'urgence, vols fictifs.
              o lieu => Toulouse
              o places => 8 places
              o tarif => 620 euros
              o type => 1028
              o urlParams =>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    Bonjour,

    Merci beaucoup ça fonctionne parfaitement et ta réponse à été très rapide.
    Merci également pour tous multiples edit et recherches associées.

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

Discussions similaires

  1. [SimpleXML] lire fichier xml
    Par ecoinfo dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/07/2006, 20h22
  2. [SimpleXML] Problème PHP5/XML pour des affichages particuliers
    Par vanilla dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 20/04/2006, 13h22
  3. [SimpleXML] Parser un XML et en récupérer des valeurs
    Par mickael.be dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 15/04/2006, 15h08
  4. [XPATH] [XML] [JAVASCRIPT] Pb de recherche avec apostrophe
    Par lenoil dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/02/2006, 14h28
  5. [SimpleXML] Générer un XML grâce à un formulaire (sans BDD)
    Par greg1386 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 29/01/2006, 01h04

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