/// <summary> /// Retrieves new from TV2 and stores them in the field newsList /// </summary> public void GetFeed() { try { XmlDocument rssXmlDoc = new XmlDocument(); //Load the RSS file from the RSS URL rssXmlDoc.Load(uri.ToString()); //Parse the Items in the RSS file XmlNodeList rssNodes = rssXmlDoc.SelectNodes("rss/channel/item"); StringBuilder rssContent = new StringBuilder(); //Iterates through the Items in the RSS file foreach (XmlNode rssNode in rssNodes) { TV2NewsItem newsItem = new TV2NewsItem(); //Title XmlNode rssSubNode = rssNode.SelectSingleNode("title"); newsItem.Title = rssSubNode != null ? rssSubNode.InnerText : "Ingen titel"; //Datetime rssSubNode = rssNode.SelectSingleNode("pubDate"); DateTime articleDate = Convert.ToDateTime(rssSubNode.InnerText); newsItem.PubDate = articleDate; //Content rssSubNode = rssNode.SelectSingleNode("description"); //Regex for html tag removal Regex rgxHTML = new Regex("<[^>]*>"); //Additional patterns |\r?\n|\r string content = rgxHTML.Replace(rssSubNode.InnerText, ""); //WebUtility to insert correct characters instead of   or %nbsp; and the like content = WebUtility.HtmlDecode(content); newsItem.Description = content; //Author rssSubNode = rssNode.SelectSingleNode("author"); newsItem.Author = rssSubNode != null ? rssSubNode.InnerText : "Ingen forfatter"; newsList.Add(newsItem); } } catch (Exception err) { Console.WriteLine(err.Message, err.GetType()); } }
/// <summary> /// Display/cycle news from the RSS feed retrieved with [Handler].GetFeed() /// </summary> private void SetNews() { try { TV2NewsItem item = rSSFeedHandler.NewsList.FirstOrDefault(); TBlockNewsTitle.Text = item.Title; TBlockNewspublishDate.Text = item.PubDate.ToString("dd/MM/yyyy"); TBlockNewsContent.Text = item.Description; TBlockNewsAuthor.Text = "Af: " + item.Author; rSSFeedHandler.NewsList.Remove(item); } catch (Exception error) { DataValidation.SaveError(error.ToString()); } }