示例#1
0
        // http://www.nullskull.com/a/1177/everything-rss--atom-feed-parser.aspx
        private static GenericFeed ReadFeedItems(XmlTextReader reader)
        {
            var feed = new GenericFeed
            {
                Title = string.Empty,
                Items = new List <GenericFeedItem>()
            };

            GenericFeedItem currentItem = null;

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    var name = reader.Name.ToLowerInvariant();

                    if (name == "item" || name == "entry")
                    {
                        if (currentItem != null)
                        {
                            feed.Items.Add(currentItem);
                        }

                        currentItem = new GenericFeedItem();
                    }
                    else if (currentItem != null)
                    {
                        reader.Read();

                        switch (name)
                        {
                        case "title":
                            currentItem.Title = reader.Value.Trim();
                            break;

                        case "link":
                            currentItem.Link = reader.Value;
                            break;

                        case "description":
                        case "content":
                        case "content:encoded":
                            currentItem.Content = reader.Value;
                            break;
                        }
                    }
                    else if (name == "title")
                    {
                        reader.Read();

                        feed.Title = reader.Value;
                    }
                }
            }

            return(feed);
        }
示例#2
0
        // http://www.nullskull.com/a/1177/everything-rss--atom-feed-parser.aspx
        private static List <GenericFeedItem> ReadFeedItems(XmlTextReader reader, out string feedTitle)
        {
            feedTitle = string.Empty;

            var             itemList    = new List <GenericFeedItem>();
            GenericFeedItem currentItem = null;

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    string name = reader.Name.ToLowerInvariant();

                    if (name == "item" || name == "entry")
                    {
                        if (currentItem != null)
                        {
                            itemList.Add(currentItem);
                        }

                        currentItem = new GenericFeedItem();
                    }
                    else if (currentItem != null)
                    {
                        reader.Read();

                        switch (name)
                        {
                        case "title":
                            currentItem.Title = reader.Value.Trim();
                            break;

                        case "link":
                            currentItem.Link = reader.Value;
                            break;
                        }
                    }
                    else if (name == "title")
                    {
                        reader.Read();

                        feedTitle = reader.Value;
                    }
                }
            }

            return(itemList);
        }
示例#3
0
        // http://www.nullskull.com/a/1177/everything-rss--atom-feed-parser.aspx
        private static List<GenericFeedItem> ReadFeedItems(XmlTextReader reader, out string feedTitle)
        {
            feedTitle = string.Empty;

            var itemList = new List<GenericFeedItem>();
            GenericFeedItem currentItem = null;

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    string name = reader.Name.ToLowerInvariant();

                    if (name == "item" || name == "entry")
                    {
                        if (currentItem != null)
                        {
                            itemList.Add(currentItem);
                        }

                        currentItem = new GenericFeedItem();
                    }
                    else if (currentItem != null)
                    {
                        reader.Read();

                        switch (name)
                        {
                            case "title":
                                currentItem.Title = reader.Value.Trim();
                                break;
                            case "link":
                                currentItem.Link = reader.Value;
                                break;
                        }
                    }
                    else if (name == "title")
                    {
                        reader.Read();

                        feedTitle = reader.Value;
                    }
                }
            }

            return itemList;
        }