Можно ли сделать SyndicationFeed.Load более надежным? - PullRequest
2 голосов
/ 14 июня 2009

Я пытаюсь прочитать несколько каналов Rss / Atom с

var synFeed = SyndicationFeed.Load(reader);

Но это бросает на малейшую проблему. Например, когда один элемент содержит несколько тегов HTML в поле описания, невозможно читать ленту новостей вообще. Ему также не нравятся теги RDF, например, из SlashDot.

Обратите внимание, что Load() - это статический метод без перегрузок.

Есть ли другой способ импортировать фид через System.ServiceModel.Syndication.SyndicationFeed? Я не мог найти это.

Кстати: я использую C # 4, но любые ответы на Framework 3.5 также хороши. И я знаю об Argotic и других библиотеках, просто хочу посмотреть, насколько полезна платформа Syndication в первую очередь.

1 Ответ

7 голосов
/ 21 августа 2009

Хенк, причина, по которой ты не можешь читать каналы из Slashdot, заключается в том, что он использует RSS 1.0. .NET Framework включает только встроенную поддержку каналов RSS 2.0 и Atom 1.0.

Однако можно создать собственный класс, который расширяет класс SyndicationFeedFormatter и анализирует каналы RSS 1.0. Прочтите мою статью на эту тему, чтобы получить описание процесса вместе с кодом C # для такого класса: Синдикация и использование RSS 1.0 (RDF) каналов в ASP.NET 3.5 .

...