Будем парсить страницу с RSS и десериализовывать в объект. Это значит результатом нашего парсинга будет объект с записями из RSS ленты, с которым уже можно работать на ваше усмотрение.
Объект :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[XmlRoot(ElementName = "rss")] public class RSS { [XmlElement("channel")] public ChannelRSS Channel { get; set; } } public class RSS { [XmlElement("item")] public List<ItemRSS> Items { get; set; } } public class ItemRSS { [XmlElement("link")] public string Link { get; set; } [XmlElement("author")] public string Author { get; set; } [XmlElement("title")] public string Title { get; set; } [XmlElement("description")] public string Description { get; set; } [XmlElement("pubDate")] public string PubDate { get; set; } } |
Метод для получения объекта:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public static RSS GetRSS(int count = 0) { RSS result = new RSS(); string rss = ""; XmlSerializer serializer = new XmlSerializer(typeof(RSS)); using (WebClient client = new WebClient()) { client.Encoding = Encoding.UTF8; rss = client.DownloadString("http://my.site/rss"); } using (TextReader reader = new StringReader(rss)) { result = (RSS)serializer.Deserialize(reader); } if(count != 0) { result.Channel.Items = result.Channel.Items.Take(count).ToList(); } return result; } |