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] Récupérer un noeud parent


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut [SimpleXML] Récupérer un noeud parent
    Bonjour,

    J'utilise simplexml pour charger mon fichier xml qui est le suivant:

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <livres>
     
    <livre id="1">
    <auteur>Boris vian</auteur>
    <exemplaires>
    <exemplaire  id="34"/>
    <exemplaire  id="35"/>
    <exemplaire  id="36"/>
    </exemplaires>
    </livre>
     
    <livre id="2">
    <auteur>Michel Garneau</auteur>
    <exemplaires>
    <exemplaire  id="37"/>
    <exemplaire  id="38"/>
    <exemplaire  id="39"/>
    </exemplaires>
    </livre>
     
    </livres>
    J'aimerais afficher le id du livre qui contient l'exemplaire avec le id 38, donc le nœud parent qui est le livre avec le id 2.

    Je suis en mesure d'aller chercher le id 38, mais je bloque pour aller chercher son nœud parent.

    Code php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $xml=simplexml_load_file('livres.xml');
    $id_exemplaire =$xml->xpath('//livre/exemplaires/exemplaire[@id="38"]');

    Est-ce possible avec un xpath et simplexml de faire ce genre de requêtes sans passez par le dom?

    Merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 256
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 256
    Points : 8 552
    Points
    8 552
    Billets dans le blog
    17
    Par défaut
    C'est tout à fait possible avec XPath
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //livre[exemplaires/exemplaire[@id="38"]]/@id
    Donne 2.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Séb. Voir le message
    C'est tout à fait possible avec XPath
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //livre[exemplaires/exemplaire[@id="38"]]/@id
    Donne 2.
    Salut,

    Ton code me retourne un array:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $id_parent =$xml->xpath('//livre[exemplaires/exemplaire[@id="38"]]/@id');
    echo $id_parent;
    Resultat: Array.

    j'ai ajouté $id_parent[0]; et ca marche bien.

    Merci à toi

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 256
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 256
    Points : 8 552
    Points
    8 552
    Billets dans le blog
    17
    Par défaut
    Hum oui, j'ai un peu raccourci tout à l'heure.
    Fais un print_r($id_parent) pour comprendre

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

Discussions similaires

  1. [SimpleXML] Récupérer valeur parents après XPath sur valeur enfant
    Par kaoboss dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 15/09/2011, 22h28
  2. [DOM] Récupérer l'id d'un noeud parent - DOM
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/02/2008, 17h19
  3. Réponses: 3
    Dernier message: 17/11/2005, 16h41
  4. [JTree] Récupérer le noeud sélectionné, sans événement
    Par Bobsinglar dans le forum Composants
    Réponses: 4
    Dernier message: 26/05/2005, 19h06
  5. [JTree]noeud parent dans un jtree
    Par wassimb dans le forum Composants
    Réponses: 5
    Dernier message: 22/03/2004, 15h06

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