it-roy-ru.com

Как я могу начать делать C # RSS Reader?

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

49
Kredns

Увидеть

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.)

50
Brian

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

11
Sung M. Kim

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

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

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

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

6
scottm

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

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

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

1
Lukas Šalkauskas

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

0
aloisdg

Вам нужно работать со спецификацией RSS XML: http://cyber.law.harvard.edu/rss/rss.html

0
Marco Bettiolo

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

0
Julien Roncaglia

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

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

0
Jafin

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

0
Lee B

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

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

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

0
Gregory A Beamer

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

0
bkingdev