2009-02-23 26 views
51

Hace tiempo que quería hacer un lector de RSS (solo por diversión), pero no tengo la menor idea de por dónde empezar. No entiendo nada sobre RSS. ¿Hay buenos tutoriales en RSS y cómo implementarlo en una aplicación (no un tutorial sobre cómo hacer un lector de RSS, que sería demasiado fácil).¿Cómo puedo comenzar a crear un lector de C# RSS?

Respuesta

51

Ver

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

Básicamente hay un montón de cosas en el 3.5 de .NET Framework que hace el ronco trabajo de análisis y los alimentos que representan; no es difícil escribir una aplicación de 30 líneas que toma una URL de fuente y descarga el feed e imprime el título y el autor de todos los elementos, por ejemplo. (Obras de RSS 2.0 (no otros) o Atom!).

+2

Véase p. la parte superior de http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!164.entrada de un fragmento de 10 líneas (F #, pero sobre todo solo llamando a las API del marco) que lo llevará desde Uri a imprimir el feed en aproximadamente 30 segundos de codificación. – Brian

+1

Enlaces muy útiles, si alguien está a punto de analizar rss ** ¡estos son los enlaces! ** –

+2

Tengo una aplicación completa de RSS, RDF y ATOM Reader y tutorial en mi sitio http://www.jarloo.com/rumormill-5/ Muestra cómo escribir sus propios analizadores usando LINQ. – Kelly

0

Si escribe un completo lector sin necesidad de utilizar cualquier biblioteca, también piensan que hay ATOM feeds para analizar.

11

Si se están centrando en la creación de un lector de RSS y no en RSS lógica de análisis, es posible que desee delegar la creación/RSS feeds usando este libre de RSS Biblioteca llama Argotic en CodePlex.com

0

RSS sí es realmente simple. Solo una descripción XML de un canal y una lista de elementos en ese canal (posiblemente con archivos adjuntos a cada elemento). Hacer un seguimiento de las actualizaciones es un poco complicado, y administrar las codificaciones y las horas/fechas posteriores también es complicado. La verdadera pesadilla son todas las diferentes "interpretaciones" del formato RSS que usan diferentes sitios. Si realmente está escribiendo un lector de feeds, es posible que desee comenzar a analizar Atom, ya que es un formato más estandarizado, y podría hacerlo avanzar más rápido, con un buen diseño desde el cual se puede derivar a RSS. Pero en realidad, debería usar una biblioteca de análisis RSS, preferiblemente la más compatible disponible (pero no pague por una biblioteca RSS, son lo suficientemente comunes).

0

RSS es un dialecto XML, por lo que si conoce XML, tiene parte del problema resuelto. Si quieres un comienzo en su proyecto, considerar la búsqueda de los proyectos de código abierto ya está ahí:

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

CodePlex (arriba) es un buen lugar para empezar, ya que la mayoría de los proyectos será en C# .

6

Como se recomienda otro póster, la clase SyndicationFeed y Argotic son las mejores alternativas.

Si el rendimiento es un problema, la clase SyndicationFeed será mucho mejor. Lo evalué como 9 veces más rápido que Argotic en mi hardware.

El problema que he tenido con la clase SyndicationFeed ha sido su capacidad de analizar correctamente cualquier fuente aleatoria de la 'red. Falla con una XmlException sorprendentemente a menudo.

Para mis usos, me quedo con Argotic. Después de todo, es de código abierto, por lo que siempre puedo hacer cambios si es necesario.

0

Considere leer el código fuente RSS Bandit, que es un lector RSS de C# Winforms (posiblemente pronto WPF).

Debería obtener algunas buenas ideas simplemente recorriendo la aplicación.

1

le sugiero que utilice este

RSS.NET es una biblioteca de clases .NET de código abierto para los canales RSS. Proporciona un modelo de objeto reutilizable para analizar y escribir feeds RSS. Es totalmente compatible con las versiones RSS 0.90, 0.91, 0.92 y 2.0.1, implementando todas las construcciones.

Dado que la alimentación de sindicación estándar no admite otras versiones de rss.

0

He estado trabajando bastante con RSS y he descubierto que los datos de ATOM son generalmente más fáciles de analizar utilizando la clase RssSyndication. Para las especificaciones de RSS 2.0, si el feed es de hecho válido, entonces es igual de fácil cargar un XDocument del URI y analizar los datos según sea necesario.

0

Si no puede usar System.ServiceModel.Syndication.Syndicationfeed, por ejemplo, porque está utilizando una PCL (biblioteca de clases portátil). Escribí uno: FeedParserPCL. Puede encontrarlo en NuGet.

Cuestiones relacionadas