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] Recherche par valeur d'attribut récupération valeur du noeud


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut [SimpleXML] Recherche par valeur d'attribut récupération valeur du noeud
    Bonjour,

    Je pense avoir un soucie vraiment bête, mais je ne parviens pas à trouver la solution.

    J'ai un fichier XML qui comporte une multitude de donnée mais la partie qui m'intéresse actuellement est celle ci :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    ....
        <paths>
            <folder type="css">css</folder>
            <folder type="js">javascript</folder>
            <folder type="lang">language</folder>
            <folder type="tpl">template</folder>
        </paths>
    ....

    Je voudrai récupérer la valeur "language" du noeud comportant l'attribut "type" ayant la valeur "lang" (Je sais pas si je suis bien clair la )

    En faisant comme ceci, bien évidement, je n'y parviens pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $xml = simplexml_load_file($xmlfile);
    $result = $xml->xpath('/paths/folder[@type="lang"]');
    var_dump($result[0]);
    j'ai modifier aussi le Xpath comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = $xml->xpath('/paths[folder[@type="lang"]]');
    J'ai beau faire des recherches ici et ailleurs, mais aussi avec mon ami et essayer de multiples formules Xpath mais je n'arrive pas à récupérer cette foutue valeur "language".

    Si quelqu'un à la solution, je suis preneur

    Cordialement.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Personne n'a un idée ? ou c'est tellement bête que personne veux se donner la pêne de m'aider

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Février 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant communication & réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2015
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    J'ai une question similaire à celle de Cortexx.
    Est-ce que quelqu'un sait y répondre svp ?

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Le problème est qu'on ne sait trop quoi représente les trois points. Si il y a quelques ascendants de paths là, le xpath qui commence avec /paths est certainement faux. En plus, on ne sais pas si il existe quelque déclaration de namespace en défaut ou non et ça a un impact sur le xpath qu'on devrait utiliser.

    Pour garder contre toutes incertitudes, on peut toujours le faire comme ça en simplifiant un peu.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result = $xml->xpath('//*[local-name()="folder" and @type="lang"]');
    if (count($result) != 0) {
        echo "language : ", $result[0], "\n";
    } else {
        echo "Ne trouve pas le noeud en question.\n";
    }

    Voilà !

Discussions similaires

  1. Recherche par un autre attribut que le id
    Par adamo901 dans le forum JPA
    Réponses: 2
    Dernier message: 03/09/2008, 19h21
  2. [SimpleXML] Obtenir la valeur des attributs
    Par domishao dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/02/2008, 12h04
  3. [POO] Valeur par défaut des attributs
    Par Gruik dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2007, 12h32
  4. Valeur de retour après recherche par itérateur
    Par Mindiell dans le forum SL & STL
    Réponses: 4
    Dernier message: 13/09/2007, 19h33
  5. Réponses: 11
    Dernier message: 12/04/2007, 12h28

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