web-dev-qa-db-ja.com

C#を使用して.netでrssフィードを読む最良の方法

RSSフィードを読むための最良の方法は何ですか?

これを達成するためにXmlTextReaderを使用しています。他の最善の方法はありますか?

XmlTextReader reader = new XmlTextReader(strURL);

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

RSSフィードを使用してXmlTextReaderを使用した後、ListItemではなくDataSetにデータを入力する方法はありますか?

enter image description here

93
Tronics

System.ServiceModel.Syndication名前空間には、いくつかの要素、つまり SyndicationFeed クラスがあります。

これはかなり単純な例です。 http://blogs.msdn.com/b/steveres/archive/2008/01/20/using-syndicationfeed-to-displaying-photos-from-spaces-live-com.aspx

85
Matthew Vines

参照にSystem.ServiceModelを追加します

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

SyndicationFeed class を探しています。これはまさにそれを行います。

8
SLaks

これは古い投稿ですが、私がやったようにここに着いたら時間を節約するために、CodeHollow.FeedReaderをご覧になることをお勧めします幅広いRSSバージョンをサポートし、使いやすく、より堅牢なパッケージ。 https://github.com/codehollow/FeedReader

6
emilast

これを使って :

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