ASP RSS-i parser, voo lugeja

Depositphotos 4651719 s

Sel nädalavahetusel olen kleepunud oma sülearvuti külge ja otsin veebist veebipõhiseid RSS-kanalite lugejaid. Põhjus on see, et tahtsin kirjutada asp RSS-voo lugeja, mis kuvaks voogu, et sisu saaks automaatselt HTML-e-kirjaks kraapida. Nii et inimeste jaoks, kes soovivad reserveerida osa oma e-uudiskirjast oma ajaveebi- või publikatsiooniartiklite jaoks, võiks selle hõlpsasti lisada. Kuna JavaScript ei kuva tegelikult sisu enne, kui klient skripti laadib ja käivitab, polnud paljusid JavaScripti RSS-brausereid kasulik. Mul oli vaja serveripoolset RSS-voo lugejat.

Alustuseks kirjutasin oma parseri ASP-sse, kasutades MSXML-i objekti. Suutsin seda tehes sõeluda umbes 75% RSS-voogudest, kuid mõnda RSS-kanalite lahtist XML-spetsifikatsiooni osutus programmeerimiseks väga keeruliseks. Saate seda näha tegevuses siin. Võite edastada maksimaalse üksuste arvu (ni), sõna juures ära lõigatud märkide arvu (nc) ja URL-i. Tegelikku voogu näete ka silumismuutujaga siin.

Paljud RSS-kanalid on tõesti üsna räpased ja nõuavad XML-faili teksti parseldamist stringi manipuleerimiskoodiga (ugh!). Muidugi oleme endiselt meie RSS-i nooruses netis, nii et ma pole üllatunud. Lisateave RSS-spetsifikatsioonide kohta siin.

Lõpuks sattus mulle üks pisike pärl. Leidsin allalaadimiseks tasuta ASP-klassi. See on natuke aeglane, kuid ma pole leidnud voogu, mida see ei oleks suutnud lugeda. Mul on siin staatiline versioon ja siin dünaamiline versioon.

Paar märkust stsenaariumi kohta. Mul oli vaja tagastatud kirjeldustes mõned HTML-märgendid kustutada. Tegin seda väikese puhastusfunktsiooniga, mille leidsin:

Funktsioon EemaldaHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Tehke Kuigi nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") Kui nPos2> 0 Siis strText = Vasak (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Muu väljumine Lõpeta Kui nPos1 = InStr (strText, ">") Silmus EemaldaHTML = strText Lõppfunktsioon

Lisasin ka veel ühe korraliku natuke koodi: Mõnikord võiksin soovida kuvada enam-vähem kirjeldust. Kui ma lihtsalt piiran tähemärkide arvu, siis võin sõna keskel oleva kirjelduse ära lõigata. Ma ei taha seda teha!

Funktsiooni väljalõige (strText, intChars) dim intLength dim j intLength = len (strText) kui intChars> intLength siis j = intChars kuni 0 astmeni -1, kui keskel (strText, j, 1) = "", siis väljuge järgmiseks, kui j> 0, siis strText = vasak (strText, j-1) & "..." muidu strText = strText lõpp, kui lõpp, kui Cutoff = strText End Funktsioon

(Mul oli mõningaid probleeme selles koodis oma koodi õigesti kuvades ... andke teada, kui teil on mõne nimetatud funktsiooniga probleeme!)

Olen netis märganud veel mitmeid tööriistu. Siin on
. NET versioon, palju PHP versioone, tonn JavaScripti versiooni.

Kokkuvõtteks loodan, et RSS-i spetsifikatsioone täiendatakse ka edaspidi ja tegelikud kanalid vastavad kõikidel juhtudel XML-i standarditele. Tasuta rakendused nagu TypePad, WordPress jne peavad oma RSS-funktsionaalsust täpsustama. Täiendavad ajaveebid nagu MySpace, Xanga, LiveJournal jne peavad oma RSS-i funktsionaalsust parandama. RSS ON võimas ...Chris Baggott kirjutas toreda teose Email vs RSS. Ma arvan, et nende funktsionaalsuse kombineerimine võib mõlema mõju suurendada!

Mis sa arvad?

Sellel saidil kasutatakse rämpsposti vähendamiseks Akismetit. Vaadake, kuidas teie andmeid töödeldakse.