Можно ли сделать SyndicationFeed.Load более надежным?

2

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

var synFeed = SyndicationFeed.Load(reader);

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

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

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

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

  • 0
    Я предполагаю, что эти каналы не проверяются ( feedvalidator.org ), и вы действительно имеете в виду толерантность к недействительным каналам, а не надежную.
  • 0
    Да, это то, что я хочу. Еще не пробовал feedvalidator, но это тоже мало поможет, они не мои каналы.
Теги:
rss
syndication-feed

1 ответ

7
Лучший ответ

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

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

  • 0
    ОК, похоже на хорошую статью.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню