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] Filtrer le résultat


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut [SimpleXML] Filtrer le résultat
    Bonsoir,

    J'ai utilisé le code de cette discussion : http://www.developpez.net/forums/d65...affichage-rss/
    Avec moi cela ne fonctionne pas...

    Pourtant, il me semble que les modifications sont limitées

    J'ai remplacé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($rss as $tab) {
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for($i = 0; $i < 5; $i++){
      $tab = $rss[$i];
    Le reste du code semble identique.

    Quelque chose m'a échappé ?

    En vous remerciant pour votre aide,

    Jm2t

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    utilise SimpleXML ca sera plus propre et plus simple

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut Re : utilise SimpleXML
    Je ne connaissais pas SimpleXML...
    Merci pour l'info, je peux essayer de regarder, mais ça va forcément me prendre un peu de temps.

    En attendant, j'aurai bien aimé faire fonctionner la boucle for
    Je dois pas être très loin....

    Si quelqu'un à une idée, merci d'avance

    Jm2t

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut Simple XML
    Ok, j'ai trouvé avec Simple XML.

    Pour info, j'ai trouvé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     $i = 0;  
             $nb_affichage = 5;  
             echo '<ul>';  
             foreach($fluxrss->channel->item as $item){  
                 echo '<li><a href="'.(string)$item->link.'">'.(string)$item->title.'</a></li>';  
                 if(++$i>=$nb_affichage)  
                     break;  
             }  
             echo '</ul>';

    Ca marche et je limite les affichages. Super.

    Par contre, je voudrais n'afficher que quelques items.
    Par exemple uniquement ceux de le catégorie "toto"

    Quelqu'un a une idée, je ne trouve pas la solution...

    Merci !

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Jm.2t Voir le message
    Par contre, je voudrais n'afficher que quelques items.
    Par exemple uniquement ceux de le catégorie "toto"

    Quelqu'un a une idée, je ne trouve pas la solution...

    Merci !
    il faut faire une requête xpath

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $xml   = simplexml_load_file('http://www.jeuxvideo.fr/xml/rev.xml');
    $items = $xml->xpath('//item/category[contains(.,"Xbox 360")]/..');
     
    foreach(array_slice($items, 0, 10) as $item)
    {
        //blabla
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut
    Fantastique !
    Ca marche. Merci !!

    foreach(array_slice($items, 0, 10) as $item)
    Ca veut dire que ca n'affiche que les 10 premiers ?

    J'avais trouvé un code qui effectuais quelques vérifications avant d'afficher.
    Et la par contre, j'ai pas réussi à intégrer le Xpath...

    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
    <?php  
        try{
            if(!@$fluxrss=simplexml_load_file('http://www.monsite.com/fichier.xml')){
                throw new Exception('Flux introuvable');
            }        
            if(empty($fluxrss->channel->title) || empty($fluxrss->channel->description) || empty($fluxrss->channel->item->title))
                throw new Exception('Flux invalide');
     
            $i = 0;
            $nb_affichage = 10;
            foreach($fluxrss->channel->item as $item){
                echo '<p><strong>'.(string)$item->title.'</strong> : '.(string)$item->category.'<br /><a href="'.(string)$item->link.'">'.(string)$item->description.'</a><br /></p>';
                if(++$i>=$nb_affichage)
                    break;
            }
        }
        catch(Exception $e){
            echo $e->getMessage();
        }
     
    ?>

    Une idée ?

    Ces vérifications ne sont peut être pas nécessaires. Le fichier xml est le mien...

    Merci d'avance,

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/10/2008, 12h25
  2. Réponses: 7
    Dernier message: 08/07/2008, 20h41
  3. Filtrer le résultat
    Par nellynew dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/12/2006, 10h05
  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. Réponses: 1
    Dernier message: 13/04/2005, 15h41

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