Kris B
Kris B

Reputation: 3578

SyndicationFeed content:encoded

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

Answers (1)

Pygmy
Pygmy

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

Related Questions