Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SyndicationFeed content:encoded

Tags:

c#

rss

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.

like image 201
Kris B Avatar asked Jul 13 '09 19:07

Kris B


1 Answers

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/>");
         }
    }
like image 126
Pygmy Avatar answered Nov 06 '22 04:11

Pygmy