Próbuję zrobić prosty czytnik RSS przy użyciu klasy SyndicationFeed
.Budowanie prostego czytnika RSS, pobieranie zawartości
Istnieje kilka standardowych tagów, takich jak <title>
, <link>
, <description>
... nie ma z nimi problemu.
Ale są też inne znaczniki. na przykład w this feed, utworzonej przez WordPress, znajduje się tag <content:encoded>
. Myślę, że mogą istnieć inne znaczniki dla części treści innych witryn. dobrze?
Chcę wiedzieć, jak znaleźć główną treść każdego posta, czy są jakieś standardy? jakich tagów powinienem szukać?
(na przykład witryna może używać <content:encoded>
ale jakiś inny po prostu użyć <description>
lub ktoś użyć innego standardu ... nie wiem, co robić do pobierania główny treść postu)
PS: Używam tego kodu do testowania mojego prostego czytnika RSS:
var reader = XmlReader.Create("http://feed.2barnamenevis.com/2barnamenevis");
var feed = SyndicationFeed.Load(reader);
string s = "";
foreach (SyndicationItem i in feed.Items)
{
s += i.Title.Text + "<br />" + i.Summary.Text + "<br />" + i.PublishDate.ToString() + "<br />";
foreach (SyndicationElementExtension extension in i.ElementExtensions)
{
XElement ele = extension.GetObject<XElement>();
s += ele.Name + " :: " + ele.Value + "<br />";
}
s += "<hr />";
}
return s;
Zależy od tego, co chcesz wspierać. Element zawartości nie jest częścią RSS2.0, ale jest z Atomu (rss 4287). Przeczytaj specyfikację RSS2.0 http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt –
Kiedy ostatnio spróbowałem napisać czytnik RSS, ostatecznie zrezygnowałem, gdy zdałem sobie sprawę, że znaczna liczba kanałów jest dostępna nie stosuj się do żadnych norm. Główni czytelnicy muszą być bardzo wyrozumiali, jeśli chodzi o czytanie kanałów. Widzę to trochę jak przeglądarki czytające strony internetowe - jeśli ludzie przestrzegają standardów, nie ma problemu, ale jeśli nie, będziesz pisać niestandardowe rzeczy przez cały dzień, aby poradzić sobie z jednorazowymi scenariuszami. –
@JoeEnos Co robią inne aplikacje czytnika kanałów? Mogą czytać każdy kanał. Jak oni to robią ?! –