
ASP-RSS-analizilo, Fluolegilo
Ĉi-semajnfine mi estis ligita al mia tekkomputilo serĉanta en la reto legilojn de RSS-fluoj. La kialo estas, ke mi volis verki asp RSS-legilon, kiu montrus la fluon, por ke la enhavo estu aŭtomate skrapita en HTML-retpoŝton. Do por homoj, kiuj volas rezervi parton de sia retpoŝta informilo por siaj artikoloj pri Blogo aŭ Eldonaĵo, ĝi povus esti facile enmetita. Ĉar Ĝavoskripto efektive ne montras la enhavon ĝis la kliento ŝarĝas kaj plenumas la skripton, la abundo de javaskriptaj RSS-retumiloj ne utilis. Mi bezonis servilflankan RSS-legilon.
Mi komencis skribante mian propran analizilon en ASP per la objekto MSXML. Mi povis analizi ĉirkaŭ 75% de RSS-fluoj farante tion, sed iuj el la malstriktaj XML-specifoj pri RSS-fluoj montriĝis tre malfacile programeblaj. Vi povas vidi ĝin en ago tie. Vi povas transdoni la maksimuman nombron de eroj (ni), la nombron de signoj fortranĉitaj ĉe la vorto (nc), kaj ankaŭ la URL. Vi ankaŭ povas vidi la realan fluon kun debug-variablo tie.
Multaj RSS-fluoj estas vere sufiĉe "malpuraj" kaj postulas analizi la tekston en la XML-dosiero kun ĉena manipulokodo (uf!). Kompreneble, ni ankoraŭ estas en nia RSS-junularo en la reto, do mi ne miras. Legu pli pri RSS-specifoj tie.
Fine, mi renkontis malgrandan juvelon. Mi trovis senpagan ASP-klason elŝuteblan. Iomete malrapide, sed mi ne trovis fluon, kiun ĝi ne povis legi. Mi havas statikan version ĉi tie kaj dinamikan version ĉi tie.
Paro notas pri la skripto. Mi ja bezonis forigi iujn HTML-etikedojn en la redonitaj priskriboj. Mi faris tion per iom da puriga funkcio, kiun mi trovis:
Funkcio ForigiHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Faru Dum nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") Se nPos2> 0 Tiam strText = Maldekstre (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Alie Eliri Faru Fini Se nPos1 = InStr (strText, ">") Buklo ForigiHTML = strText Fina Funkcio
Mi ankaŭ aldonis alian bonordan kodeton: Foje, mi eble volas montri pli-malpli priskribon. Tamen, se mi simple limigos la nombron de signoj, tiam mi eble fortranĉos la priskribon meze de la vorto. Mi ne volas fari tion!
Funkcio Cutoff (strText, intChars) dim intLength dim j intLength = len (strText) if intChars> intLength tiam por j = intChars al 0 paŝo -1 se mid (strText, j, 1) = "" tiam eliru por sekva se j> 0 tiam strText = maldekstre (strText, j-1) & "..." else strText = strText fino se fino se Cutoff = strText Fina Funkcio
(Mi havis iujn problemojn por montri mian kodon ĝuste en ĉi tiu eniro ... sciigu min, ĉu vi havas problemojn kun iu el ĉi tiuj funkcioj!)
Mi rimarkis ankaŭ sufiĉe multajn ilojn en la reto. Ekzistas
NET versio, multaj PHP-versioj, multe da JavaScript-versioj.
Por fini, mi esperas, ke RSS-specifoj daŭre estu rafinitaj kaj la realaj fluoj konformas al XML-normoj en ĉiuj kazoj. Senpagaj programoj kiel TypePad, WordPress, ktp bezonas rafini sian RSS-funkcion. Pliaj blogoj kiel MySpace, Xanga, LiveJournal ktp bezonas plibonigi sian RSS-funkcion. RSS ESTAS potenca ...Chris Baggott skribis belan pecon ĉe Retpoŝto kontraŭ RSS. Mi pensas, ke kombini ilian funkciecon povus pliigi la efikon de ambaŭ!