Reputation: 3578
I’m using the SyndicationFeed
class to consume some rss feeds. I am wondering how to get the content:encoded
node of an RSS feed. This is the code I’m using:
XmlReader reader = XmlReader.Create(response.GetResponseStream());
SyndicationFeed feed = SyndicationFeed.Load(reader);
foreach (SyndicationItem item in feed.Items)
{
string title = (item.Title != null) ? item.Title.Text : String.Empty;
string content = ??
string pubDate = (item.PublishDate != null) ? item.PublishDate.ToString("r") : String.Empty;
}
I can use item.Summary.Text
but that seems to return the Description
node, which can be just a short summary, while content:encoded
will have the full content. There’s an option for item.content
, but I'm not sure how to use it and documentation is scarce.
Upvotes: 8
Views: 5117
Reputation: 1896
Try this :
StringBuilder sb = new StringBuilder();
foreach (SyndicationElementExtension extension in item.ElementExtensions)
{
XElement ele = extension.GetObject<XElement>();
if (ele.Name.LocalName == "encoded" && ele.Name.Namespace.ToString().Contains("content"))
{
sb.Append(ele.Value + "<br/>");
}
}
Upvotes: 21