static void Main(string[] args) { string rssUrl = "http://feeds.bbci.co.uk/news/world/rss.xml"; var xFeed = Syndication.Load(new Uri(rssUrl)); if (xFeed is Atom) { Console.WriteLine("FEED IS ATOM"); } else if (xFeed is Rdf) { Console.WriteLine("FEED IS RDF"); } else if (xFeed is Rss) { Console.WriteLine("FEED IS RSS"); var rss = xFeed as Rss; foreach (var item in rss.Channel.Items) { Console.WriteLine($"Title: {item.Title}"); Console.WriteLine($"Description: {item.Description}"); Console.WriteLine(); } Console.WriteLine($"Found {rss.Channel.Items.Count} items."); Console.WriteLine(); } }
static void LoadAndPrintRssRandomNewsItem(string url) { try { var sb = Syndication.Load(new Uri(url)); if (sb is Atom) { var atom = sb as Atom; var numItems = atom.Entries.Count; if (numItems > 0) { var rnd = new Random(); var item = atom.Entries[rnd.Next(0, numItems - 1)]; PrintAtomItem(atom, item); } return; } else if (sb is Rdf) { var rdf = sb as Rdf; var numItems = rdf.Items.Count; if (numItems > 0) { var rnd = new Random(); var item = rdf.Items[rnd.Next(0, numItems - 1)]; PrintRdfItem(rdf, item); } return; } else if (sb is Rss) { var rss = sb as Rss; var numItems = rss.Channel.Items.Count; if (numItems > 0) { var rnd = new Random(); var item = rss.Channel.Items[rnd.Next(0, numItems - 1)]; PrintRssItem(rss, item); } return; } Console.WriteLine("news-of-the-day invalid rss"); } catch (Exception x) { Console.WriteLine($"news-of-the-day error: {x.Message}"); } }