SyndicationFeed内容:编码

时间:2009-07-13 19:27:45

标签: c# rss

我正在使用SyndicationFeed类来使用某些RSS源。我想知道如何获取RSS源的content:encoded节点。这是我正在使用的代码:

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;

}

我可以使用item.Summary.Text,但这似乎会返回Description节点,这可能只是一个简短的摘要,而content:encoded将包含完整的内容。 item.content有一个选项,但我不确定如何使用它,文档很少。

1 个答案:

答案 0 :(得分:21)

试试这个:

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