Czy korzystanie z serializacji do odczytu danych z kanału RSS jest praktyczne/możliwe? Zasadniczo chcę pobierać informacje z mojej kolejki Netflix (dostarczanej z kanału RSS) i próbuję zdecydować, czy serializacja jest możliwa/możliwa, czy też powinienem użyć czegoś takiego jak XMLReader. Jaki byłby najlepszy sposób pobrania kanału z adresu URL? Nigdy nie wyciągałem plików poza napędami, więc nie jestem pewien, jak to zrobić.Deserializowanie kanału RSS w .NET
Odpowiedz
Jeśli można użyć LINQ, LINQ do XML jest łatwym sposobem, aby dostać się na podstawach dokumentu RSS.
To z something I wrote wybrać się zbiór anonimowych typów z kanału RSS mojego bloga, na przykład:
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();
}
Powinieneś móc używać coś bardzo podobnego na kanale Netflix.
Jeśli używasz .NET 3.0 lub 3.5 ... to sugerowałbym użycie XMLReadera do czytania dokumentu na XDocument. Następnie możesz użyć LINQ do XML, aby zapytać i renderować kanał RSS w coś użytecznego.
Budowanie czegoś w celu odseparowania XML jest również wykonalne i będzie działać równie dobrze (jeśli nie lepiej), ale będzie więcej czasu na stworzenie.
Tak czy inaczej zadziała ... zrób to, z czym czujesz się lepiej (lub, jeśli chcesz nauczyć się serializacji XML, idź do niego i naucz się czegoś nowego).
Platforma .NET 3.5 dodała obsługę syndykowania. System.ServiceModel.Syndication nazw zapewnia kilka rodzajów do zarządzania karmę, treści paszowym i kategorie, formatowanie Feed (RSS 2.0 Atom 1.0) itd
http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.aspx
masz kilka opcji serializacji, ale najprostszą jest prawdopodobnie najlepiej opisany tutaj:
- Get rss schematu z http://www.thearchitect.co.uk/schemas/rss-2_0.xsd
- Generuj klasy C# za pomocą xsd.exe. XSD rssschema.xsd/C
- czasie działania deserializowania xml Kanał pomocą xsd i klasę generowany powyżej.
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. RSS kanału ASP.Net
- 2. Specyfikacja RSS Kod HTML wewnątrz kanału RSS
- 3. Tworzenie kanału RSS w ASP.NET 3.5
- 4. parser rss w .net
- 5. Wyodrębnianie nowych pozycji z kanału RSS
- 6. Parsowanie kanału RSS przy użyciu asp.net C#
- 7. Dodaj wordpress opisywany obraz do kanału RSS
- 8. Tworzenie kanału RSS dla Github Stars
- 9. Analizator RSS dla .NET
- 10. Najlepsza implementacja kanału RSS w języku C# (ASP.net)
- 11. Dodawanie polecanego obrazu do kanału RSS w Wordpress
- 12. Jak mogę zastosować mój arkusz stylów CSS do kanału RSS
- 13. Parsowanie kanału RSS przy użyciu XML packageagin R
- 14. Okno dialogowe kanału RSS generujące błędy z iOS SDK
- 15. Uzyskiwanie niestandardowego elementu elementu kanału rss za pomocą syndicationitem?
- 16. Uzyskiwanie surowych danych XML z kanału Feedburner RSS
- 17. Jak uzyskać dostęp do kanału RSS projektu prywatnego GitHub?
- 18. Testowanie kanałów RSS
- 19. DateTime.Parse dla pubDate w kanałach RSS
- 20. Deserializowanie tablicy XML w katalogu głównym dokumentu
- 21. Deserializowanie klasy abstrakcyjnej w Gson
- 22. Deserializowanie JSON w pakiecie WP7
- 23. Jak mogę wyświetlić dane wyjściowe kanału RSS w formacie HTML w TWebBrowser?
- 24. Wykrywanie nowych pozycji w kanale RSS
- 25. Json.NET: Deserializowanie zagnieżdżonych słowników
- 26. Python: serializowanie/deserializowanie datetime.time
- 27. Subskrybuj kanał RSS
- 28. Jak wyświetlić obraz w RSS?
- 29. Projektowanie "kanału społecznościowego" w DynamoDB
- 30. Deserializowanie rodzaju ogólnego z Jacksonem
wziąłem spojrzenie na to, ale wydaje się, że przestrzeń nazw zawiera tylko opcje serializacji, a nie opcje deserializacjia, chyba że coś przeoczyłem. – MGSoto
"Odserializuj" za pomocą metody statycznej SyndicationFeed.Load. Automatycznie wykrywa format wejściowy. Jeśli potrzebujesz większej kontroli, możesz użyć formaterów bezpośrednio ... wszystkie one mają metodę ReadFrom, która pobiera XmlReader. – jrista
Zajmę się tym, kiedy wrócę do domu, świetnie jest wiedzieć, czy kiedykolwiek potrzebuję zrobić kolejny projekt RSS. – MGSoto