ASP RSS Parser, czytnik kanałów

4651719 s

W ten weekend byłem przykuty do laptopa, szukając w sieci internetowych czytników RSS. Powodem jest to, że chciałem napisać czytnik kanałów RSS asp, który wyświetlałby kanał, tak aby zawartość mogła być automatycznie pobierana do wiadomości e-mail w formacie HTML. Tak więc dla osób, które chcą zarezerwować część swojego biuletynu e-mailowego na artykuły na blogu lub publikacje, można je łatwo włączyć. Ponieważ JavaScript w rzeczywistości nie wyświetla treści, dopóki klient nie załaduje i nie wykona skryptu, mnóstwo przeglądarek JavaScript RSS nie było przydatne. Potrzebowałem czytnika RSS po stronie serwera.

Zacząłem od napisania własnego parsera w ASP przy użyciu obiektu MSXML. Udało mi się przeanalizować około 75% kanałów RSS, ale niektóre luźne specyfikacje XML dotyczące kanałów RSS okazały się bardzo trudne do zaprogramowania. Możesz to zobaczyć w akcji tutaj. Możesz podać maksymalną liczbę elementów (ni), liczbę znaków odciętych w słowie (nc), a także adres URL. Możesz również zobaczyć rzeczywisty kanał ze zmienną debugowania tutaj.

Wiele kanałów RSS jest naprawdę „brudnych” i wymaga przeanalizowania tekstu w pliku XML za pomocą kodu manipulującego napisami (ugh!). Oczywiście nadal jesteśmy w naszej „młodzieży” RSS w sieci, więc nie jestem zdziwiony. Przeczytaj więcej na temat specyfikacji RSS tutaj.

W końcu trafiłem na mały klejnot. Znalazłem bezpłatną klasę ASP do pobrania. Jest trochę powolny, ale nie znalazłem kanału, którego nie byłby w stanie odczytać. Mam tutaj wersję statyczną, a tutaj wersję dynamiczną.

Kilka uwag na temat scenariusza. Musiałem wyczyścić niektóre znaczniki HTML w zwróconych opisach. Zrobiłem to z małą funkcją czyszczenia, którą znalazłem:

Funkcja RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Do While nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") Jeśli nPos2> 0 Then strText = Left (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Else Exit Do End If nPos1 = InStr (strText, ">") Loop RemoveHTML = strText End Function

Dodałem też kolejny zgrabny kawałek kodu: Czasami mogę chcieć wyświetlić mniej więcej opis. Jeśli jednak ograniczę po prostu liczbę znaków, mógłbym odciąć opis w środku słowa. Nie chcę tego robić!

Funkcja Cutoff (strText, intChars) dim intLength dim j intLength = len (strText) if intChars> intLength then for j = intChars to 0 step -1 if mid (strText, j, 1) = "" then exit for next if j> 0 then strText = left (strText, j-1) & "..." else strText = strText end if end if Cutoff = strText End Function

(Miałem problemy z poprawnym wyświetleniem mojego kodu w tym wpisie… daj mi znać, jeśli masz problemy z którąkolwiek z tych funkcji!)

Zauważyłem też sporo innych narzędzi w sieci. Tam jest
. NET wersja, wiele wersji PHP, mnóstwo wersji JavaScript.

Podsumowując, mam nadzieję, że specyfikacje RSS będą nadal udoskonalane, a rzeczywiste źródła będą zgodne ze standardami XML we wszystkich przypadkach. Darmowe aplikacje, takie jak TypePad, WordPress itp., Wymagają udoskonalenia funkcji RSS. Dodatkowe blogi, takie jak MySpace, Xanga, LiveJournal itp., Wymagają ulepszenia funkcji RSS. RSS JEST potężny…Chris Baggott napisał fajny artykuł na temat Email vs. RSS. Myślę, że połączenie ich funkcjonalności może zwiększyć wpływ obu!

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.