2009-02-23 22 views
51

Ho voluto creare un lettore RSS per un po 'ora (solo per divertimento), ma non ho la minima idea di dove cominciare. Non capisco nulla di RSS. Ci sono dei buoni tutorial su RSS e su come implementarlo in un'applicazione (non un tutorial su come creare un lettore RSS, sarebbe troppo facile).Come posso iniziare a creare un Lettore RSS C#?

risposta

51

Vedi

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

Fondamentalmente c'è un sacco di roba nel 3.5 .NET Framework che fa il grugnito-lavoro di analisi e di mangimi che rappresentano; non è difficile scrivere un'app di 30 linee che raccolga un URL del feed e scarica il feed e stampa il titolo e l'autore di tutti gli articoli, ad esempio. (Lavora per RSS 2.0 (non altri) o Atom!.)

+2

Vedere ad es. la parte superiore di http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!164.entry per uno snippet a 10 righe (F #, ma in genere si chiama solo API framework) che ti porterà da Uri alla stampa del feed in circa 30 secondi di codifica. – Brian

+1

Link molto utili, se qualcuno sta per analizzare rss ** questi sono i link! ** –

+2

Ho ricevuto un'app completa di RSS, RDF e ATOM Reader e tutorial sul mio sito http://www.jarloo.com/rumormill-5/ Mostra come scrivere i propri parser usando LINQ. – Kelly

0

Se si scrive un lettore di piena funzionalità senza l'utilizzo di qualsiasi libreria, pensa anche che ci sono ATOM feed da analizzare.

11

Se si stanno concentrando sulla creazione di un RSS Reader e non su RSS logica di analisi, si potrebbe desiderare di delegare la creazione/lettura di feed RSS usando questo libero RSS libreria chiamata Argotic su CodePlex.com

0

RSS è di per sé davvero semplice Solo una descrizione XML di un canale e un elenco di elementi su quel canale (eventualmente con file allegati a ciascun elemento). Tenere traccia degli aggiornamenti è un po 'complicato, e gestire anche le codifiche e i tempi/le date è complicato. Il vero incubo sono tutte le diverse "interpretazioni" del formato RSS utilizzato da diversi siti. Se stai davvero scrivendo un lettore di feed, potresti voler iniziare con l'analisi di Atom, in quanto è un formato più standardizzato, e potrebbe farti diventare più veloce, con un buon design da ramificarsi in RSS da. In realtà, dovresti semplicemente usare una libreria di analisi RSS, preferibilmente la più compatibile disponibile (ma non pagare per una libreria RSS, sono abbastanza comuni).

0

RSS è un dialetto XML, quindi se si conosce l'XML, si ha una parte del problema risolto. Se si desidera un inizio sul vostro progetto, in considerazione guardando i progetti open source già là fuori:

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

CodePlex (sopra) è un buon punto di partenza, come la maggior parte dei progetti sarà in C# .

6

Come un altro poster consigliato, la classe SyndicationFeed e Argotic sono le migliori alternative.

Se la prestazione è un problema, la classe SyndicationFeed sarà molto meglio. Il mio benchmark era circa 9 volte più veloce di Argotic sul mio hardware.

Il problema che ho riscontrato con la classe SyndicationFeed è stata la sua capacità di analizzare correttamente qualsiasi feed casuale dalla rete. Fallisce con una XmlException sorprendentemente spesso.

Per i miei usi, sto attaccando con Argotic. Dopotutto, è open source, quindi posso sempre apportare modifiche se necessario.

0

Si consiglia di leggere il codice sorgente per RSS Bandit, che è un lettore RSS C# Winforms (possibilmente presto WPF).

Si dovrebbero ottenere alcune buone idee semplicemente passando attraverso l'applicazione.

1

vi suggerisco di utilizzare questo

RSS.NET è una libreria di classi .NET open-source per i feed RSS. Fornisce un modello di oggetti riutilizzabile per l'analisi e la scrittura di feed RSS. È completamente compatibile con le versioni RSS 0.90, 0.91, 0.92 e 2.0.1, implementando tutti i costrutti.

Poiché il feed di syndication standard non supporta altre versioni di rss.

0

Ho lavorato un po 'con RSS e ho scoperto che i feed di ATOM sono in genere più semplici da analizzare utilizzando la classe RssSyndication. Per le specifiche RSS 2.0, se il feed è effettivamente valido, allora è altrettanto facile caricare un XDocument dall'URI e analizzare i dati secondo necessità.

0

Se non si utilizza System.ServiceModel.Syndication.Syndicationfeed, ad esempio perché si utilizza un PCL (Portable Class Library). Ne ho scritto uno: FeedParserPCL. Puoi trovarlo su NuGet.

Problemi correlati