Standard RSS (prosty czytnik w C#)

0

Witam z kolejnym problemem! ;)

Muszę zrobić czytnik RSS który z kilku stron ściągnie RSSy (w zasadzie XML). Oglądam pliki XML (z kanałów RSS Interii, itp. stron) i widzę pewne różnice między różnym serwisami. Czasem linki wstawione są pomiędzy ![CDATA[ ..... ] a czasem nie. Czy jeszcze czekają mnie jakieś różnice, czy jest to standard i wszyscy trzymają się "normy"?? Zastanawiam się też nad datą publikacji np. <pubDate>Fri, 18 Mar 2011 2300 +0100</pubDate> Czy jej format zapisu jest zawsze identyczny? (interesują mnie tylko serwisy z Polski).

W pliku XML zwykle znajduje się ostatnie 15, 20 czy 25 tematów z portalu. Czy da się wymusić jakoś ściągniecie większej liczby, tj. dotrzeć do archiwum i zebrać stare linki z poprzednich okresów? (pewnie nie, ale chce się upewnić).

Chce użyć XmlWriter i XmlReader - chyba będą odpowiednie do tego celu (prosty czytnik RSS)?

Dzięki za uwagi i wskazówki!

0

Istnieją dwa główne standardy RSS używane obecnie - RSS 2.0 oraz Atom 1.0. Kanały zazwyczaj są w którymś z tych formatów i powinny się tego trzymać. Oczywiście - witamy w Sieci - czasem zdarzy się ktoś, kto zrobi to niezgodnie z zasadami.

Format daty który podałeś jest formatem wymaganym przez specyfikację RSS 2.0. On MUSI być w takiej, angielskiej wersji, ale np. nie zawsze posiada określenie strefy czasowej (to +0100). Niemniej, DateTime.Parse() powinno sobie poradzić w większości przypadków. Format Atom wymaga zapisu daty w postaci 2011-03-18T2300+0100 z kolei. CDATA używa się jeżeli dane z kanału są np. w formacie HTML, aby łatwiej osadzić HTML w XML którym RSS jest.

Pobranie większej liczby wpisów niż jest w kanale RSS jest możliwe, o ile serwis udostępnia taką funkcję. Np. jeden z serwisów blogowych ma linki w postaci http://example.com/rss/10/content/ gdzie to "10" oznacza ile wpisów ma się znaleźć w kanale. Jeśli serwis nie udostępnia takiej możliwości, to nie ma szans uzyskać więcej danych.

Do odczytu możesz użyć XmlReader, XmlDocument lub LINQ to XML, wedle wyboru i gustu. Każdy będzie równie dobry, jedynie inaczej trzeba się nimi posługiwać.

0

W temacie RSS: jak radzić sobie z konwersją znaków? Widzę, że nie wszyscy używają strony kodowej 8859-2 :(

Adm232 / Groupon

0

Przejrzałem kilka kanałów RSS/Atom ze stron, które odwiedzam, wszystkie używały UTF-8, jedynego słusznego standardu. Klasa Encoding powinna załatwić sprawę konwersji z innych standardów na ten, o ile dobrze myślę.

0

8859-2 to lipny standard, oby wyszedł z użycia jak najszybciej. - Azarien

Może i tak, ale widziałem (chyba starsze strony), które się go trzymają.

1 użytkowników online, w tym zalogowanych: 0, gości: 1