Как я могу начать делать C # RSS Reader? - PullRequest
49 голосов
/ 23 февраля 2009

Я давно хотел сделать RSS-ридер (просто для удовольствия), но понятия не имею, с чего начать. Я ничего не понимаю в RSS. Есть ли хорошие руководства по RSS и как их реализовать в приложении (не руководство по созданию программы чтения RSS, это было бы слишком просто)

Ответы [ 11 ]

50 голосов
/ 23 февраля 2009

См

http://msdn.microsoft.com/en-us/library/bb943474.aspx

http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx

http://msdn.microsoft.com/en-us/library/bb943480.aspx

По сути, в .Net 3.5 есть много вещей, которые выполняют основную работу по разбору и представлению каналов; нетрудно написать приложение из 30 строк, которое принимает URL-адрес канала, загружает канал и печатает, например, заголовок и автора всех элементов. (Работает для RSS 2.0 (не для других!) Или Atom.)

11 голосов
/ 23 февраля 2009

Если вы сосредоточены на создании RSS Reader , а не на логике синтаксического анализа RSS, вы можете делегировать создание / чтение RSS-каналов с помощью этой бесплатной библиотеки RSS под названием Argotic в CodePlex .com

6 голосов
/ 16 августа 2009

Как рекомендовал другой автор, класс SyndicationFeed и Argotic являются лучшими альтернативами.

Если производительность является проблемой, класс SyndicationFeed будет намного лучше. Я оценил его как примерно в 9 раз быстрее, чем Argotic на моем оборудовании.

Проблема, с которой я столкнулся с классом SyndicationFeed, заключается в его способности успешно анализировать любой случайный канал из сети. Сбой с XmlException на удивление часто.

Для моего использования я придерживаюсь Argotic. В конце концов, это открытый исходный код, поэтому я всегда могу вносить изменения, если мне нужно.

1 голос
/ 27 мая 2010

Я предлагаю вам использовать это

RSS.NET - это библиотека классов .NET с открытым исходным кодом для каналов RSS. Он предоставляет многократно используемую объектную модель для разбора и написания RSS-каналов. Он полностью совместим с версиями RSS 0.90, 0.91, 0.92 и 2.0.1, реализуя все конструкции.

Поскольку стандартный синдикационный канал не поддерживает другие версии rss.

0 голосов
/ 28 сентября 2015

Если вы не можете использовать System.ServiceModel.Syndication.Syndicationfeed, например, потому что вы используете PCL (Portable Class Library). Я написал один: FeedParserPCL . Вы можете найти его на NuGet .

0 голосов
/ 16 апреля 2012

Я довольно много работал с RSS и обнаружил, что каналы ATOM обычно легче анализировать с помощью класса RssSyndication. Для спецификаций RSS 2.0, если канал действительно действителен, то так же просто загрузить XDocument из URI и анализировать данные по мере необходимости.

0 голосов
/ 27 мая 2010

Попробуйте прочитать исходный код RSS Bandit , который является C # Winforms (возможно, скоро WPF) RSS Reader.

Вы должны получить хорошие идеи, просто пройдя приложение.

0 голосов
/ 23 февраля 2009

RSS - это диалект XML, поэтому, если вы знаете XML, у вас есть часть проблемы решена. Если вы хотите начать свой проект, рассмотрите уже имеющиеся проекты с открытым исходным кодом:

http://www.codeplex.com/site/search?projectSearchText=RSS%20Reader

CodePlex (выше) - хорошее место для начала, так как большинство проектов будет на C #.

0 голосов
/ 23 февраля 2009

RSS сам по себе действительно прост. Просто XML-описание канала и список элементов на этом канале (возможно, с файлами, прикрепленными к каждому элементу). Отслеживание обновлений немного сложнее, а управление кодировками и временем / датами постов тоже довольно сложно. Настоящий кошмар - это все разные «интерпретации» формата RSS, которые используют разные сайты. Если вы действительно пишете программу для чтения каналов, возможно, вы захотите начать с синтаксического анализа Atom, поскольку это более стандартизированный формат, который может помочь вам быстрее, с хорошим дизайном, с которым можно переходить в RSS. Но на самом деле, вы должны просто использовать библиотеку разбора RSS - предпочтительно наиболее совместимую из доступных (но не платите за библиотеку RSS; они достаточно распространены).

0 голосов
/ 23 февраля 2009

Если вы пишете полнофункциональный считыватель без использования какой-либо библиотеки, также подумайте, что для анализа есть ATOM фидов.

...