ASP RSS Ayrıştırıcısı, Feed Reader

Depositphotos 4651719 s

Bu həftə sonu veb əsaslı RSS lent oxucuları üçün şəbəkəni axtaran noutbukuma yapışdım. Səbəb budur ki, məzmunun avtomatik olaraq HTML e-poçtuna yığılması üçün yemi əks etdirən bir asp RSS feed oxucu yazmaq istədim. E-poçt bülletenlərinin bir hissəsini Blogları və ya Nəşr məqalələri üçün ayırmaq istəyən insanlar üçün asanlıqla daxil edilə bilər. Müştəri ssenarini yükləyənə və icra edənə qədər JavaScript həqiqətən məzmunu göstərmədiyi üçün, JavaScript RSS brauzerlərinin çoxluğu faydalı deyildi. Bir server tərəfində RSS lent oxuyucusuna ehtiyacım vardı.

MSXML obyektindən istifadə edərək ASP-də öz analizatorumu yazmağa başladım. Bunu edərkən RSS lentlərinin təxminən 75% -ni təhlil edə bildim, lakin RSS lentlərindəki bəzi boş XML spesifikasiyalarının proqramlaşdırılması çox çətin olduğu sübut edildi. Bunu hərəkətdə görə bilərsiniz burada. Maksimum element sayını (ni), (nc) sözündə kəsilmiş simvol sayını və URL-i ötürə bilərsiniz. Həqiqi axını bir debaq dəyişəni ilə də görə bilərsiniz burada.

Bir çox RSS axını həqiqətən olduqca çirklidir və XML sənədindəki mətni simli manipulyasiya kodu ilə təhlil etməyi tələb edir (ugh!). Əlbətdə ki, hələ də RSS-lərimizi 'gəncliyimiz' şəbəkədə tutur, buna görə təəccüblənmirəm. RSS xüsusiyyətləri haqqında daha çox oxuyun burada.

Nəhayət, kiçik bir daşla qarşılaşdım. Yükləmək üçün pulsuz bir ASP sinfi tapdım. Biraz yavaş, amma oxuya bilmədiyi bir lent tapmadım. Burada statik və dinamik versiyam var.

Ssenaridə bir neçə qeyd. Qaytarılmış təsvirlərdə bəzi HTML etiketlərini təmizləməyim lazım idi. Bunu tapdığım bir az təmizləmə funksiyası ilə etdim:

Funksiyası RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Do while nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") If nPos2> 0 If strText = Sol (strText, nPos1) - 1) & Mid (strText, nPos2 + 1) nPos1 = InStr (strText, ">") Əgər Başqa Çıxış Sonu Bitir

Ayrıca başqa bir səliqəli kod əlavə etdim: Bəzən bir və ya daha çox təsviri göstərmək istəyə bilərəm. Ancaq simvol sayını məhdudlaşdırsam, sözün ortasındakı təsviri kəsə bilərəm. Bunu etmək istəmirəm!

Funksiya Kəsmə (strText, intChars) dim intLength dim j intLength = len (strText) əgər intChars> intLength sonra j = intChars üçün 0 addım -1 -ə qədər orta (strText, j, 1) = "" sonra növbəti üçün çıxın j> əgər 0 sonra strText = left (strText, j-1) & "..." else strText = strText end if end if Cutoff = strText End function

(Bu girişdə kodumu düzgün göstərməklə bağlı bəzi problemlər yaşadım ... bu funksiyalardan hər hansı birində probleminiz varsa mənə bildirin!)

Şəbəkədə bir neçə daha çox alət gördüm. Var
. NET versiya, bir çox PHP versiyası, bir ton JavaScript versiyası.

Nəticə çıxarmaq üçün ümid edirəm ki, RSS spesifikasiyaları dəqiqləşdirilməyə davam edəcək və həqiqi lentlər bütün hallarda XML standartlarına uyğundur. TypePad, WordPress və s. Kimi pulsuz tətbiqetmələrin RSS funksiyalarını dəqiqləşdirmələri lazımdır. MySpace, Xanga, LiveJournal və s. Kimi əlavə blogların RSS funksiyalarını yaxşılaşdırmaları lazımdır. RSS güclüdür ...Chris Baggott e-poçt və RSS-də gözəl bir yazı yazdı. Düşünürəm ki, onların funksionallığını birləşdirmək hər ikisinin təsirini artıra bilər!

Siz nə düşünürsünüz?

Bu sayt spam azaldılması üçün Akismet istifadə edir. Yorumunuzun necə işləndiyini öyrənin.