我正在使用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
有一个选项,但我不确定如何使用它,文档很少。
答案 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/>");
}
}