What is the right/best way to get data from an RSS feed using ASP.Net Core 1.0 (RC2) in C#.
I want to work with the data in the RSS feed from my Wordpress blog which
For the sake of completeness, I'll include the final code which is a stripped down version of the sample @Sock linked to in the 'Build your own XML Parser' section of the answer. @Sock's answer is still the most complete answer, but this sample should be useful for anyone looking for a quick, simple code sample for ASP.NET Core.
public class FeedItem
{
public string Link { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime PublishDate { get; set; }
}
public class ArticlesController : Controller
{
public async Task Index()
{
var articles = new List();
var feedUrl = "https://blogs.msdn.microsoft.com/martinkearn/feed/";
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(feedUrl);
var responseMessage = await client.GetAsync(feedUrl);
var responseString = await responseMessage.Content.ReadAsStringAsync();
//extract feed items
XDocument doc = XDocument.Parse(responseString);
var feedItems = from item in doc.Root.Descendants().First(i => i.Name.LocalName == "channel").Elements().Where(i => i.Name.LocalName == "item")
select new FeedItem
{
Content = item.Elements().First(i => i.Name.LocalName == "description").Value,
Link = item.Elements().First(i => i.Name.LocalName == "link").Value,
PublishDate = ParseDate(item.Elements().First(i => i.Name.LocalName == "pubDate").Value),
Title = item.Elements().First(i => i.Name.LocalName == "title").Value
};
articles = feedItems.ToList();
}
return View(articles);
}
private DateTime ParseDate(string date)
{
DateTime result;
if (DateTime.TryParse(date, out result))
return result;
else
return DateTime.MinValue;
}
}