Содержание SyndicationFeed: закодировано - PullRequest
8 голосов
/ 13 июля 2009

Я использую класс SyndicationFeed для потребления некоторых RSS-фидов. Мне интересно, как получить content:encoded узел RSS-канала. Это код, который я использую:

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 Ответ

21 голосов
/ 10 декабря 2009

Попробуйте это:

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/>");
         }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...