// 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); }
// 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); }
// 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; }