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

ASP.NET Discussion :

Flux Rss + Framework 3.5


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut Flux Rss + Framework 3.5
    Bonjour, je cherche à afficher des flux rss ou atom sur un site. J'ai trouvé sur le site cette doc : http://badger.ftp-developpez.com/tut...yndication.pdf
    Je n'arrive pas à l'utiliser car je n'arrive pas à compiler cette ligne (j'ai bien toutes les références et les using)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SyndicationFeed feed = SyndicationFeed.Load(new Uri("http://www.developpez.com/rss.php"));
    Ce n'est pas grave, j'ai trouvé un autre moyen :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    XmlTextReader reader = new XmlTextReader(_urlRss);
    SyndicationFeed feed = SyndicationFeed.Load(reader);
    foreach (SyndicationItem it in feed.Items)
    {
          response.write(it.Title.ToString());
    }
    Ca fonctionne bien pour la plupart des flux. Cependant j'ai 2 problèmes :
    1. ce code ne fonctionne pas avec ce flux : http://rss1.mediafed.com/feed/football365/breves
    Voici l'erreur :
    Erreur à la ligne 24 position 46. Une erreur s’est produite lors de l’analyse d’une valeur DateTime dans le XML.
    2. Je n'arrive pas à trier les flux par date.

    J'espère avoir été suffisament explicit pour obtenir votre aide. Merci par avance :-)

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Citation Envoyé par flogreg Voir le message
    Je n'arrive pas à l'utiliser car je n'arrive pas à compiler cette ligne (j'ai bien toutes les références et les using)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SyndicationFeed feed = SyndicationFeed.Load(new Uri("http://www.developpez.com/rss.php"));
    Effectivement, cette technique fonctionnait avec la beta2 mais dans la version final du framework 3.5 la méthode Load ne prend plus qu'un XmlReader en parametre.

    Citation Envoyé par flogreg Voir le message
    1. ce code ne fonctionne pas avec ce flux : http://rss1.mediafed.com/feed/football365/breves
    Il y a apparemment un probleme avec la date dans le flux rss.
    Si tu essaye de tester ce flux via un validateur de flux(http://www.feedvalidator.org/) tu obtiendras plusieurs erreurs (plus ou moins graves) dont celle-ci:

    column 43: pubDate must be an RFC-822 date-time: Thu, 07 Feb 2008 11:47:00+0200 (10 occurrences)
    En fait il manque un espace entre la fin de l'heure et le signe +. Oui je sais c'est très bete... Faut demander aux admins du site de modifier la génération de leur flux (ou alors que tu fasse la modif toi même vu que tu récupère le flux en local).
    J'ai testé, et effectivement si tu rajoutes l'espace, ça fonctionne

    Citation Envoyé par flogreg Voir le message
    2. Je n'arrive pas à trier les flux par date.
    Pour avoir la date la plus récente en 1er:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (var item in feed.Items.OrderByDescending(i => i.PublishDate))
    {
        Console.WriteLine(item.PublishDate.UtcDateTime +" "+ item.Title.Text);
    }
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    Merci, c'est excatement ce que je cherchais !

  4. #4
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    en fait je me suis emballé un peu vite car je n'avais pas testé de trier par date... Ca ne fonctionne pas. Ca ne passe pas à la compile.

  5. #5
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Fais voir ton code
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  6. #6
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    voici mon code :
    protected void AfficheFlux(object sender, EventArgs e)
    {

    XmlTextReader reader = new XmlTextReader(_urlRss);

    SyndicationFeed feed = SyndicationFeed.Load(reader);

    if (feed.ImageUrl != null)
    {
    ImgTitre.ImageUrl = feed.ImageUrl.AbsoluteUri.ToString();
    ImgTitre.AlternateText = "*";
    }
    else
    {
    ImgTitre.Visible = false;
    }
    LblTitre.Text = feed.Title.Text;


    int k = 0;
    foreach (SyndicationItem it in feed.Items)
    {
    if (k < _nbEnreg)
    {

    TableRow ligneLien = new TableRow();
    MaTable.Controls.Add(ligneLien);
    TableCell cellLien = new TableCell();
    cellLien.ColumnSpan = 2;
    ligneLien.Controls.Add(cellLien);
    HyperLink lien = new HyperLink();
    cellLien.Controls.Add(lien);
    lien.Text = it.PublishDate.ToString() + " - " + it.Title.Text;
    lien.NavigateUrl = it.Links[0].Uri.ToString();
    lien.CssClass = "TableRssLien";

    TableRow ligneText = new TableRow();
    MaTable.Controls.Add(ligneText);
    TableCell cellImg = new TableCell();
    ligneText.Controls.Add(cellImg);
    TableCell cellText = new TableCell();
    ligneText.Controls.Add(cellText);

    Label LblText = new Label();
    LblText.Text = it.Summary.Text;
    LblText.CssClass = "TableRssText";
    cellText.Controls.Add(LblText);

    k++;
    }
    }
    }
    edit : et donc ce que tu m'as dis de faire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            foreach (SyndicationItem it in feed.Items.OrderByDescending(it => it.PublishDate))
            {
    ........
             }

  7. #7
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Tu as mis 3 fois "it" comme variable. Le premier est différent des 2 autres (un peu long à expliquer).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  8. #8
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    et bien je ne peux pas écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    feed.Items.OrderByDescending(...)
    Sur le feed.Items, l'intellisense ne me propose que les choix de base (ToString, CompareTo, ...)... Et sinon à quoi correspondrait la variable i ?

  9. #9
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    T'es sur que t'es en FrameWork 3.5 (ça serait pas plutot le 3.0 ?)

    Le "i" est un paramètre de l'expression lambda (qui se trouve entre parenthèses).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  10. #10
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    J'ai craché mon pc. J'ai réinstallé l'os hier soir. Ce soir, je réinstalle le framework 3.5 et je te tiens au courant. Mais je suis quasi sur que le 3.5 était installé.

  11. #11
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    Citation Envoyé par The_badger_man Voir le message
    T'es sur que t'es en FrameWork 3.5 (ça serait pas plutot le 3.0 ?)
    Comment vérifier ca ? Si je fais un Response.Write(Environment.Version); j'obtiens 2.0.50727.1433.

    J'ai installé visual studio 2008, j'ai bien choisi la version 3.5 et si je fais un Response.Write(Environment.Version); j'obtiens aussi 2.0.50727.1433.

    et toujours pas la possibilité de trier...

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