E 'pratico/possibile utilizzare la serializzazione per leggere i dati da un feed RSS? Fondamentalmente voglio estrarre informazioni dalla mia coda Netflix (fornita da un feed RSS), e sto cercando di decidere se la serializzazione è fattibile/possibile, o se dovrei usare qualcosa come XMLReader. Inoltre, quale sarebbe il modo migliore per scaricare il feed da un URL? Non ho mai tirato file da nient'altro che drive, quindi non sono sicuro di come farlo.deserializzazione un feed RSS in .NET
risposta
Se è possibile utilizzare LINQ, LINQ to XML è un modo semplice per ottenere le basi di un documento di feed RSS.
Questo è da something I wrote per selezionare un insieme di tipi anonimi di feed RSS del mio blog, per esempio:
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();
}
si dovrebbe essere in grado di utilizzare qualcosa di molto simile contro il tuo feed Netflix.
Se stai usando .NET 3.0 o 3.5 ... allora io suggerirei di usare un XMLReader di leggere il documento in un XDocument. È quindi possibile utilizzare LINQ in XML per eseguire una query e rendere il feed RSS in qualcosa di utilizzabile.
Costruire qualcosa per de-serializzare l'XML è anche fattibile e funzionerà altrettanto bene (se non meglio) ma richiederà più tempo per creare.
In entrambi i casi funziona ... fare quello che stai più bene con (o, se si sta cercando di imparare la serializzazione XML, andare per esso e imparare qualcosa di nuovo).
Il framework .NET 3.5 ha aggiunto il supporto syndication. Il System.ServiceModel.Syndication namespace fornisce un sacco di tipi per gestire i feed, il contenuto del feed e categorie, la formattazione Feed (RSS 2.0, Atom 1.0), ecc
http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.aspx
Avete alcune opzioni per serializzazione, ma il più semplice è probabilmente meglio descritto qui:
- Get schema rss dal http://www.thearchitect.co.uk/schemas/rss-2_0.xsd
- Generare classe C# utilizzando xsd.exe. xsd rssschema.xsd/c
- In runtime deserializzare il XML rss usando l'XSD e classe generata sopra.
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. Feed RSS in PHP
- 2. Feed Parsing Feed RSS/Atom
- 3. Linq al feed RSS?
- 4. Iscriviti a un feed RSS
- 5. Come autenticare un feed RSS
- 6. Creare feed RSS in MVC4/WebAPI
- 7. Creazione di un feed RSS in ASP.NET 3.5
- 8. Tempo ritardare un RSS Feed esterna
- 9. Come creare un feed RSS "vuoto"
- 10. Impostazione di un Github Commit Feed RSS
- 11. Impaginazione in feed come ATOM e RSS?
- 12. Generazione di feed RSS in Rails 3
- 13. Come disabilitare i feed RSS in STS?
- 14. parser rss in .net
- 15. Rilevamento di nuovi nuovi articoli in un feed RSS
- 16. Come posso creare un feed RSS/Atom in Rails 3?
- 17. Come posso inserire questo feed RSS in un listview jQuery?
- 18. ottieni il feed RSS nell'array php - possibile?
- 19. DateTime.Parse per pubDate nei feed RSS
- 20. Generatore di feed RSS decente per PHP
- 21. Messaggi della pagina di Facebook feed rss?
- 22. Feed RSS per recensioni di Apple App
- 23. implementazione della sicurezza per i feed RSS
- 24. Verifica URL del feed RSS valido
- 25. Parse feed RSS tramite pacchetto XML R
- 26. Feed RSS Reddit, oltre i 25 risultati?
- 27. Feed RSS per il formato Apple News
- 28. RSS-Feed restituisce una stringa vuota
- 29. Il feed RSS non funziona su Chrome
- 30. notifica push per il feed RSS?
ho dato un'occhiata a questo, ma sembra che il namespace prevede solo opzioni di serializzazione, non le opzioni di deserializzazione, a meno che non ho trascurato qualcosa. – MGSoto
Si "deserializza" tramite il metodo statico SyndicationFeed.Load. Rileva automaticamente il formato di input. Se hai bisogno di più controllo, puoi usare direttamente i formattatori ... tutti hanno un metodo ReadFrom che accetta un XmlReader. – jrista
Dare un'occhiata a questo quando torno a casa, questo è bello sapere se ho mai bisogno di fare un altro progetto RSS. – MGSoto