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
?
Le System.ServiceModel.Syndication
space 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
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;
...
}
Vous recherchez le SyndicationFeed
class , qui fait exactement cela.
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
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);
}
}