Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }