internal RssReadResults Read(XmlElement element, XmlNamespaceManager manager) { if (element == null) { throw new ArgumentNullException("element"); } // channel... RssChannel channel = new RssChannel(); // walk items... RssReadResults results = new RssReadResults(channel); foreach (XmlElement itemElement in element.SelectNodes("a:entry", manager)) { // create... var item = new RssItem() { Title = itemElement.SelectSingleNode("a:title", manager).InnerText, Guid = itemElement.SelectSingleNode("a:link", manager).Attributes["href"].InnerText, Description = itemElement.SelectSingleNode("a:content", manager).InnerText, PubDate = DateTime.Parse(itemElement.SelectSingleNode("a:published", manager).InnerText).ToLocalTime(), GuidIsPermalink = true }; // add... channel.Items.Add(item); } // return... return(results); }
internal override RssReadResults Read(XmlElement element, XmlNamespaceManagerEx manager) { if (element == null) { throw new ArgumentNullException("element"); } // channel element... XmlElement channelElement = (XmlElement)element.SelectSingleNode("channel"); if (channelElement == null) { throw new InvalidOperationException("channelElement is null."); } // channel... RssChannel channel = new RssChannel(); channel.ReadLeafValues(channelElement); // walk items... RssReadResults results = new RssReadResults(channel); foreach (XmlElement itemElement in channelElement.SelectNodes("item")) { // create... RssItem item = this.GetItem(itemElement, manager); if (item == null) { throw new InvalidOperationException("item is null."); } // add... channel.Items.Add(item); } // return... return(results); }