ASP RSS parsētājs, plūsmas lasītājs

Depositphotos 4651719 s

Šajā nedēļas nogalē esmu pielīmēts pie sava klēpjdatora, meklējot tīklā tīmeklī esošus RSS plūsmu lasītājus. Iemesls ir tāds, ka es gribēju uzrakstīt asp RSS plūsmas lasītāju, kas parādītu plūsmu, lai saturu varētu automātiski nokasīt HTML e-pastā. Tātad cilvēkiem, kuri vēlas rezervēt daļu sava e-pasta biļetena saviem emuāru vai publikāciju rakstiem, to varētu viegli iekļaut. Tā kā JavaScript faktiski neparāda saturu, kamēr klients nav ielādējis un izpildījis skriptu, JavaScript RSS pārlūku pārpilnība nebija noderīga. Man vajadzēja servera puses RSS plūsmas lasītāju.

Es sāku, rakstot pats savu parsētāju ASP, izmantojot objektu MSXML. Man izdevās parsēt apmēram 75% RSS plūsmu, to darot, taču dažas no brīvajām XML specifikācijām RSS plūsmās izrādījās ļoti grūti programmējamas. To var redzēt darbībā šeit. Jūs varat nodot maksimālo vienumu skaitu (ni), pie vārda nogriezto rakstzīmju skaitu (nc), kā arī URL. Varat arī redzēt faktisko plūsmu ar atkļūdošanas mainīgo šeit.

Daudzas RSS plūsmas patiešām ir diezgan netīras, un tām ir nepieciešams parsēt tekstu XML failā ar virknes manipulācijas kodu (ugh!). Protams, mēs joprojām esam mūsu RSS "jaunībā" tīklā, tāpēc es neesmu pārsteigts. Lasiet vairāk par RSS specifikācijām šeit.

Visbeidzot es uzgāju nelielu pērli. Es atradu bezmaksas ASP klasi, ko lejupielādēt. Tas ir mazliet lēns, bet es neesmu atradis plūsmu, kuru tā nebūtu spējīga izlasīt. Man šeit ir statiska versija un šeit ir dinamiska versija.

Pāris piezīmes par scenāriju. Atgrieztajos aprakstos man vajadzēja notīrīt dažus HTML tagus. Es to izdarīju ar nelielu attīrīšanas funkciju, kuru es atradu:

Funkcija NoņemtHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Dariet, kamēr nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") Ja nPos2> 0 Tad strText = Pa kreisi (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Cits iziet Do Do End Ja nPos1 = InStr (strText, ">") Cilpa NoņemtHTML = strText End Funkcija

Es arī pievienoju vēl vienu veiklu nelielu koda daļu: Dažreiz es varētu vēlēties parādīt vairāk vai mazāk aprakstu. Tomēr, ja es vienkārši ierobežoju rakstzīmju skaitu, tad es varētu nogriezt aprakstu vārda vidū. Es negribu to darīt!

Funkcijas nogriešana (strText, intChars) dim intLength dim j intLength = len (strText) ja intChars> intLength, tad j = intChars līdz 0 solim -1, ja vidū (strText, j, 1) = "", tad izejiet uz nākamo, ja j> 0, tad strText = pa kreisi (strText, j-1) & "..." cits strText = strText beigas, ja beigas, ja Cutoff = strText beigu funkcija

(Man bija dažas problēmas ar pareizu koda parādīšanu šajā ierakstā ... dariet man zināmu, ja jums ir problēmas ar kādu no šīm funkcijām!)

Esmu pamanījis vēl diezgan daudz rīkus arī tīklā. Tur ir
NET. versija, daudzas PHP versijas, daudz JavaScript versiju.

Noslēgumā es ceru, ka RSS specifikācijas turpina tikt pilnveidotas un faktiskās plūsmas visos gadījumos atbilst XML standartiem. Bezmaksas lietojumprogrammām, piemēram, TypePad, WordPress utt., Ir jāuzlabo to RSS funkcionalitāte. Papildu emuāriem, piemēram, MySpace, Xanga, LiveJournal utt., Ir jāuzlabo to RSS funkcionalitāte. RSS IR spēcīgs ...Kriss Baggots uzrakstīju jauku rakstu vietnē Email vs RSS. Es domāju, ka to funkcionalitātes apvienošana varētu palielināt abu ietekmi!

Ko jūs domājat?

Šī vietne izmanto Akismet, lai samazinātu surogātpastu. Uzziniet, kā tiek apstrādāts jūsu komentārs.