web-dev-qa-db-fra.com

Meilleure façon de lire les flux RSS dans .net en utilisant C #

Quelle est la meilleure façon de lire flux RSS?

J'utilise XmlTextReader pour y parvenir. Y a-t-il une autre meilleure façon de le faire?

XmlTextReader reader = new XmlTextReader(strURL);

DataSet ds = new DataSet();
ds.ReadXml(reader);

Après avoir lu le flux RSS en utilisant XmlTextReader, y at-il un moyen de renseigner les données dans ListItem au lieu de DataSet?

enter image description here

93
Tronics

Le System.ServiceModel.Syndicationspace de noms a quelques éléments pour vous, à savoir la classe SyndicationFeed .

Ceci est un exemple assez simple. http://blogs.msdn.com/b/steveres/archive/2008/01/20/using-syndicationfeed-to-displaying-photos-from-spaces-live-com.aspx

85
Matthew Vines

Ajouter System.ServiceModel dans les références

Utiliser SyndicationFeed:

string url = "http://fooblog.com/feed";
XmlReader reader = XmlReader.Create(url);
SyndicationFeed feed = SyndicationFeed.Load(reader);
reader.Close();
foreach (SyndicationItem item in feed.Items)
{
    String subject = item.Title.Text;    
    String summary = item.Summary.Text;
    ...                
}
162
dlopezgonzalez

Vous recherchez le SyndicationFeed class , qui fait exactement cela.

8
SLaks

Ceci est un vieux post, mais pour gagner du temps, si vous arrivez maintenant comme je le faisais, je vous suggère de jeter un coup d'œil au CodeHollow.FeedReader Ce package, qui prend en charge un plus grand nombre de versions RSS, est plus facile à utiliser et semble plus robuste. https://github.com/codehollow/FeedReader

6
emilast

Utilisez ceci :

private string GetAlbumRSS(SyndicationItem album)
    {

        string url = "";
        foreach (SyndicationElementExtension ext in album.ElementExtensions)
            if (ext.OuterName == "itemRSS") url = ext.GetObject<string>();
        return (url);

    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string albumRSS;
        string url = "http://www.SomeSite.com/rss‎";
        XmlReader r = XmlReader.Create(url);
        SyndicationFeed albums = SyndicationFeed.Load(r);
        r.Close();
        foreach (SyndicationItem album in albums.Items)
        {

            cell.InnerHtml = cell.InnerHtml +string.Format("<br \'><a href='{0}'>{1}</a>", album.Links[0].Uri, album.Title.Text);
            albumRSS = GetAlbumRSS(album);

        }



    }
2
Mahdi jokar