Analizor RSS ASP, cititor de fluxuri

Depositphotos 4651719 s

În acest weekend am fost lipit de laptopul meu căutând pe net cititoare de fluxuri RSS bazate pe web. Motivul este că am vrut să scriu un cititor de flux RSS asp care să afișeze fluxul astfel încât conținutul să poată fi răzuit automat într-un e-mail HTML. Deci, pentru persoanele care doresc să rezerve o parte din buletinul lor de e-mail pentru articolele lor de pe blog sau publicații, acesta ar putea fi ușor încorporat. Deoarece JavaScript nu afișează conținutul până când clientul nu încarcă și execută scriptul, pletora de browsere RSS JavaScript nu au fost utile. Aveam nevoie de un cititor de flux RSS pe partea de server.

Am început prin a-mi scrie propriul parser în ASP folosind obiectul MSXML. Am reușit să analizez aproximativ 75% din fluxurile RSS făcând acest lucru, dar unele dintre specificațiile XML libere din fluxurile RSS s-au dovedit a fi foarte dificil de programat. O puteți vedea în acțiune aici. Puteți trece numărul maxim de articole (ni), numărul de caractere tăiate la cuvânt (nc), precum și adresa URL. Puteți vedea, de asemenea, fluxul real cu o variabilă de depanare aici.

Multe fluxuri RSS sunt într-adevăr destul de „murdare” și necesită analizarea textului din fișierul XML cu cod de manipulare a șirului (ugh!). Desigur, suntem încă în „tineretul” nostru RSS pe net, așa că nu mă mir. Citiți mai multe despre specificațiile RSS aici.

În cele din urmă, am dat peste o mică bijuterie. Am găsit o clasă ASP gratuită de descărcat. Este puțin lent, dar nu am găsit un feed pe care să nu-l poată citi. Am o versiune statică aici și o versiune dinamică aici.

Câteva note despre scenariu. A trebuit să șterg câteva etichete HTML în descrierile returnate. Am făcut asta cu o mică funcție de curățare, am găsit:

Funcție RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Faceți În timp ce nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") Dacă nPos2> 0 Apoi strText = Stânga (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Altfel Ieșiți Do End Dacă nPos1 = InStr (strText, ">") Buclă RemoveHTML = strText End Function

Am adăugat, de asemenea, un alt pic de cod: Uneori, aș putea dori să afișez mai mult sau mai puțin o descriere. Totuși, dacă limitez pur și simplu numărul de caractere, atunci aș putea să întrerup descrierea din mijlocul cuvântului. Nu vreau să fac asta!

Functie 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 apoi strText = left (strText, j-1) & "..." else strText = strText end if end if Cutoff = strText End Function

(Am avut unele probleme cu afișarea corectă a codului meu în această intrare ... anunțați-mă dacă aveți probleme cu oricare dintre aceste funcții!)

Am mai observat destul de multe instrumente pe net. Este un
. NET versiune, multe versiuni PHP, o mulțime de versiuni JavaScript.

În concluzie, sper că specificațiile RSS continuă să fie rafinate și că fluxurile reale respectă standardele XML în toate cazurile. Aplicațiile gratuite precum TypePad, WordPress etc. trebuie să își perfecționeze funcționalitatea RSS. Bloguri suplimentare precum MySpace, Xanga, LiveJournal etc. trebuie să își îmbunătățească funcționalitatea RSS. RSS ESTE puternic ...Chris Baggott a scris o piesă frumoasă pe Email vs. RSS. Cred că combinarea funcționalității lor ar putea crește impactul ambelor!

Ce părere ai?

Acest site folosește Akismet pentru a reduce spamul. Aflați cum sunt procesate datele despre comentarii.