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, detection d'un attribut


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Points : 34
    Points
    34
    Par défaut SimpleXML, detection d'un attribut
    Bonjour,

    J'ai eu déjà précédament un petit souci avec les attributs (qui ont été réglé sur ce forum).

    J'ai une autre question.. J'aimerais détecter si le flux XML contient la ligne suivante :
    J'ai essayé d'utilisé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach ($sxml->entry as $entry) { 
    if ($entry->yt->noembed) { echo "Embed desactivé"; }
    Ainsi que l'élement attributes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach ($sxml->entry as $entry) { 
    echo $entry->yt->attributes()->attrname;
    Sans succès ..

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    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 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    Hello,
    Il faut passer par la méthode SimpleXMLElement::children( ), exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0"?>
    <root xmlns:x="xyz">
        <foo>
            <bar/>
            <x:bar/>
            <x:bar/>
        </foo>
    </root>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
        header('Content-Type: text/plain') ;
        $xml = simplexml_load_file('example.xml') ;
        // Récupère les fils de foo répondant à l'espace de nom "xyz"
        $children = $xml->foo->children('xyz') ;
        print_r($children) ;
    ?>
    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
    SimpleXMLElement Object
    (
        [bar] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                    )
     
                [1] => SimpleXMLElement Object
                    (
                    )
     
            )
     
    )

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    Merci de ta réponse, mais je pense mal utiliser la fonction child car je n'arrives toujours pas à savoir exactement si il y à cette ligne dans ce XML ..

    J'ai essayer sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        foreach ($sxml->entry as $entry) { 
          $media = $entry->children('http://search.yahoo.com/mrss/'); // sa c'est normal, c'est pour la bonne utilisation de mon script!
     
    	  $noemb = $entry->children('noembed');
    J'ai essayé une variante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $noemb = $entry->yt->children('noembed');
    Pour avoir plus d'information sur le fichier XML en question, voici un exemple :
    http://gdata.youtube.com/feeds/api/v...&max-results=1

    Mon but est juste de savoir si la ligne suivante existe

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    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 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    Voici ce que je ferais afin de savoir si chq entrée a un <yt:noembed> ou pas :

    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
    <?php
        header('Content-Type: text/plain') ;
        $file = 'http://gdata.youtube.com/feeds/api/videos?vq=a6zdhHLvT7k' ;
        $xml = simplexml_load_file($file) ;
        $yt = 'http://gdata.youtube.com/schemas/2007' ;
        foreach ( $xml->entry as $entry ) {
            echo $entry->title, "\r\n" ;
            // Récupère les fils de <entry> appartenant à l'espace de noms $yt
            $ytchildren = $entry->children($yt) ;
            if ( isset($ytchildren->noembed) ) {
                echo "<yt:noembed> existe\r\n" ;
            } else {
                echo "<yt:noembed> n'existe pas\r\n" ;
            }
            echo "\r\n" ;
        }
    ?>

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    Mercciii ! Je vais essayé sa =)

Discussions similaires

  1. [SimpleXML] comment faire une requête basée sur un namespace d'un attribut ?
    Par hansaplast dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/09/2007, 02h18
  2. [SimpleXML] Problème de récuperation d'attribut
    Par mitchb dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/08/2007, 13h43
  3. [SimpleXML] [DOM] Ajouter un attribut
    Par Klimium dans le forum Bibliothèques et frameworks
    Réponses: 45
    Dernier message: 14/12/2006, 13h56
  4. [SimpleXML] Filtrer des balises grâce à leurs attributs
    Par tatayecorp dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 15/08/2006, 21h06
  5. [SynEdit][HighLighter] Detection d'attributs
    Par Mercilius dans le forum Composants VCL
    Réponses: 3
    Dernier message: 12/11/2003, 17h28

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