2009-02-23 4 views
51

Ich wollte schon seit einiger Zeit einen RSS-Reader erstellen (nur zum Spaß), aber ich habe nicht die geringste Ahnung, wo ich anfangen soll. Ich verstehe nichts über RSS. Gibt es gute Tutorials zu RSS und wie man es in einer Anwendung implementiert (kein Tutorial, wie man einen RSS-Reader erstellt, wäre das zu einfach).Wie kann ich anfangen, einen C# RSS Reader zu erstellen?

Antwort

51

Siehe

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

Grundsätzlich gibt eine Menge Sachen im Net 3.5 Framework ist, das die Grunzen-Arbeit von Parsing tut und repräsentiert Feeds; Es ist nicht schwer, eine 30-Zeilen-App zu schreiben, die eine Feed-URL annimmt und den Feed herunterlädt und zum Beispiel den Titel und den Autor aller Elemente ausgibt. (Works für RSS 2.0 (nicht andere) oder Atom!).

+2

Siehe z.B. Der Anfang von http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!164.entry für ein 10-Zeilen-Snippet (F #, aber meistens nur Framework-APIs aufrufen), die Sie von Uri zum Drucken des Feeds bringt in etwa 30 Sekunden Codierung. – Brian

+1

Sehr hilfreiche Links, wenn jemand rss zu parsen rss ** das sind die Links! ** –

+2

Got eine vollständige RSS, RDF und ATOM Reader App und Tutorial auf meiner Website http://www.jarloo.com/rumormill-5/ Es zeigt, wie Sie Ihre eigenen Parser mit LINQ schreiben. – Kelly

0

Wenn Sie einen voll funktionsfähigen Leser schreiben, ohne eine Bibliothek zu verwenden, denkt auch, dass es ATOM Feeds zum Parsen.

11

Wenn Sie auf die Schaffung eines RSS Reader und nicht auf RSS-Parsing-Logik konzentrieren, möchten Sie vielleicht Schöpfung delegieren/Lesen von RSS-Feeds mit diesem kostenlosen RSS-Bibliothek namens Argotic auf CodePlex.com

0

RSS selbst wirklich einfach. Nur eine XML-Beschreibung eines Kanals und eine Liste von Elementen auf diesem Kanal (möglicherweise mit angehängten Dateien). Das Nachverfolgen von Aktualisierungen ist ein wenig schwierig, und das Verwalten von Kodierungen und das Eingeben von Zeiten/Daten ist ebenfalls schwierig. Der wahre Albtraum sind all die verschiedenen "Interpretationen" des RSS-Formats, die verschiedene Websites verwenden. Wenn Sie wirklich einen Feedreader schreiben, möchten Sie vielleicht mit der Analyse von Atom beginnen, da es sich um ein standardisierteres Format handelt, das Sie vielleicht schneller weiterbringt, mit einem guten Design, von dem Sie in RSS verzweigen können. Aber eigentlich sollten Sie einfach eine RSS-Parsing-Bibliothek verwenden - am besten die kompatibelste, die es gibt (aber zahlen Sie nicht für eine RSS-Bibliothek; sie sind häufig genug).

0

RSS ist ein XML-Dialekt, wenn Sie also XML kennen, haben Sie einen Teil des Problems gelöst. Wenn Sie einen Start an Ihrem Projekt möchten, sollten Blick auf die Open-Source-Projekte, die bereits da draußen:

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

CodePlex (oben) ist ein guter Anfang, da die Mehrzahl der Projekte in C# wird .

6

Wie ein weiteres Poster empfohlen, sind die SyndicationFeed-Klasse und Argotic die besten Alternativen.

Wenn Leistung ein Problem ist, wird die SyndicationFeed-Klasse viel besser sein. Ich habe es auf meiner Hardware etwa 9-mal schneller getestet als Argotic.

Das Problem, das ich mit der SyndicationFeed-Klasse hatte, war die Fähigkeit, jeden beliebigen Feed aus dem Netz erfolgreich zu parsen. Es schlägt überraschend oft mit einer XmlException fehl.

Für meine Zwecke bleibe ich bei Argotic. Immerhin ist es Open Source, so dass ich jederzeit Änderungen vornehmen kann.

0

Betrachten Sie den Quellcode für RSS Bandit lesen, die ein C# Winforms (möglicherweise bald WPF) RSS Reader ist.

Sie sollten einige gute Ideen erhalten, indem Sie einfach durch die Anwendung gehen.

1

Ich schlage vor, Sie verwenden diese

RSS.NET ist eine Open-Source-.NET-Klassenbibliothek für RSS-Feeds. Es bietet ein wiederverwendbares Objektmodell zum Parsen und Schreiben von RSS-Feeds. Es ist vollständig kompatibel mit den RSS-Versionen 0.90, 0.91, 0.92 und 2.0.1 und implementiert alle Konstrukte.

Da Standard-Syndication-Feed andere Versionen von RSS nicht unterstützt.

0

Ich habe mit RSS ziemlich viel gearbeitet und festgestellt, dass ATOM-Feeds in der Regel leichter mit der RssSyndication-Klasse analysiert werden können. Wenn der Feed für RSS 2.0-Spezifikationen tatsächlich gültig ist, ist es genauso einfach, ein XDocument aus dem URI zu laden und die Daten nach Bedarf zu analysieren.

0

Wenn Sie System.ServiceModel.Syndication.Syndicationfeed nicht verwenden können, z. B. weil Sie eine PCL (Portable Class Library) verwenden. Ich schrieb eins: FeedParserPCL. Sie finden es unter NuGet.