¿Es práctico/posible utilizar la serialización para leer datos de una fuente RSS? Básicamente, quiero extraer información de mi cola de Netflix (provista de una fuente RSS), y estoy tratando de decidir si la serialización es factible/posible, o si debería usar algo como XMLReader. Además, ¿cuál sería la mejor manera de descargar el feed de una URL? Nunca he sacado archivos de nada más que unidades, así que no estoy seguro de cómo hacerlo.Deserialización de una fuente RSS en .NET
Respuesta
Si puede utilizar LINQ, LINQ to XML es una manera fácil de conseguir en los conceptos básicos de un documento RSS.
Esto es de something I wrote para seleccionar una colección de tipos anónimos a partir de mi blog RSS, por ejemplo:
protected void Page_Load(object sender, EventArgs e)
{
XDocument feedXML = XDocument.Load("http://feeds.encosia.com/Encosia");
var feeds = from feed in feedXML.Descendants("item")
select new
{
Title = feed.Element("title").Value,
Link = feed.Element("link").Value,
Description = feed.Element("description").Value
};
PostList.DataSource = feeds;
PostList.DataBind();
}
usted debería ser capaz de utilizar algo muy similar en contra de su alimentación Netflix.
Si está utilizando .NET 3.0 o 3.5 ... entonces le sugiero que use un XMLReader para leer el documento en un XDocument. Luego puede usar LINQ to XML para consultar contra y convertir la fuente RSS en algo utilizable.
Crear algo para deserializar el XML también es posible y funcionará igual de bien (si no mejor) pero requerirá más tiempo para crearlo.
De cualquier forma funcionará ... haga lo que le resulte más cómodo (o, si está tratando de aprender la serialización XML, apúntelo y aprenda algo nuevo).
El .NET 3.5 framework agregó soporte de sindicación. El System.ServiceModel.Syndication espacio de nombres proporciona un montón de tipos para gestionar la alimentación, el contenido de la alimentación y de las categorías, el formato de alimentación (RSS 2.0, Atom 1.0), etc.
http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.aspx
usted tiene algunas opciones para serialización, pero la más sencilla es probablemente el mejor descrito aquí:
- Obtener esquema de RSS http://www.thearchitect.co.uk/schemas/rss-2_0.xsd
- Generar clase C# usando xsd.exe. xsd rssschema.xsd/c
- Durante el tiempo de ejecución, deserializar el XML RSS utilizando el xsd y clase generada anteriormente.
using System.ServiceModel.Syndication;
public static SyndicationFeed GetFeed(string uri)
{
if (!string.IsNullOrEmpty(uri))
{
var ff = new Rss20FeedFormatter(); // for Atom you can use Atom10FeedFormatter()
var xr = XmlReader.Create(uri);
ff.ReadFrom(xr);
return ff.Feed;
}
return null;
}
- 1. Crear una fuente RSS en ASP.NET 3.5
- 2. Suscríbase a una fuente RSS
- 3. Cómo autenticar una fuente RSS
- 4. Imágenes en la fuente RSS
- 5. RSS analizador en .net
- 6. ¿Cómo se genera una fuente RSS?
- 7. Crear fuente RSS en MVC4/WebAPI
- 8. ¿Cómo escribir una fuente RSS con Java?
- 9. Especificación RSS Código HTML dentro de la fuente RSS
- 10. Serialización/deserialización de Protobuf-net
- 11. Retraso en el tiempo de una fuente RSS externa
- 12. Detección de nuevos elementos nuevos en una fuente RSS
- 13. RSS Analizador para .NET
- 14. Cómo determinar el tipo de fuente de una .NET SyndicationFeed (RSS vs Atom)?
- 15. ¿Cómo depurar errores de deserialización en .NET?
- 16. ¿Cómo obtiene Google Reader cada elemento en una fuente RSS?
- 17. Cómo personalizar la deserialización de una enumeración JSON en .NET?
- 18. Extracción de nuevos elementos de una fuente RSS
- 19. Configuración de una fuente RSS de Github Commit
- 20. Comprobando la URL de fuente RSS válida
- 21. Cómo determinar mediante programación si una fuente RSS es una fuente de información completa o parcial
- 22. .NET ServiceModel.Syndication - Cambio de Codificación de RSS
- 23. Enviando SVN se compromete a una fuente RSS
- 24. Desarrollo de iPhone: Obtenga imágenes de la fuente RSS
- 25. Corregir serialización XML y deserialización de tipos "mixtos" en .NET
- 26. Formato RSS pubDate como .NET DateTime
- 27. Agregue la imagen destacada de wordpress a la fuente RSS
- 28. Feeds RSS en PHP
- 29. Cómo puedo consolidar las entradas de varios blogs de empleados en una sola fuente RSS
- 30. deserialización XML 'estandarización' de finales de línea, cómo detenerla? (.NET)
Me tomó un vistazo a esto, pero parece que el espacio de nombres sólo proporciona opciones de serialización, no opciones de deserialización, a menos que me daba algo. – MGSoto
Se "deserializa" mediante el método estático SyndicationFeed.Load. Detecta automáticamente el formato de entrada. Si necesita más control, puede usar los formateadores directamente ... todos ellos tienen un método ReadFrom que toma un XmlReader. – jrista
Voy a echar un vistazo a esto cuando llegue a casa, es genial saber si alguna vez tengo que hacer otro proyecto de RSS. – MGSoto