Лучший способ прочитать rss-канал in.net использование C#
как лучше всего читать RSS-каналы?
я использую XmlTextReader для достижения этой цели. Есть ли другой лучший способ сделать это?
XmlTextReader reader = new XmlTextReader(strURL);
DataSet ds = new DataSet();
ds.ReadXml(reader);
после прочтения RSS-канал используя XmlTextReader, есть ли способ я могу заполнить данные ListItem вместо DataSet?

5 ответов:
на
System.ServiceModel.Syndicationпространство имен имеет некоторые вещи, а именно SyndicationFeed класса.Это довольно простой пример. http://blogs.msdn.com/b/steveres/archive/2008/01/20/using-syndicationfeed-to-displaying-photos-from-spaces-live-com.aspx
добавить
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; ... }
Вы ищите
SyndicationFeedкласс, который делает именно это.
Это старый пост, но чтобы сэкономить людям некоторое время, если вы получите здесь сейчас, как я сделал, я предлагаю вам взглянуть на CodeHollow.FeedReader пакет, который поддерживает более широкий спектр версий RSS, проще в использовании и кажется более надежным. https://github.com/codehollow/FeedReader
используйте этот :
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); } }
Comments