ASP RSS Ayrıştırıcı, Yayın Okuyucu

4651719 s

Bu hafta sonu, web tabanlı RSS besleme okuyucuları için internette arama yapan dizüstü bilgisayarıma yapıştırıldım. Bunun nedeni, içeriğin otomatik olarak bir HTML e-postasına kopyalanabilmesi için beslemeyi görüntüleyecek bir asp RSS besleme okuyucusu yazmak istememdi. Bu nedenle, e-posta bültenlerinin bir bölümünü Blog veya Yayın makaleleri için ayırmak isteyen kişiler için, kolayca dahil edilebilir. JavaScript, istemci komut dosyasını yükleyip çalıştırana kadar içeriği gerçekten görüntülemediğinden, JavaScript RSS tarayıcılarının bolluğu yararlı değildi. Sunucu tarafı RSS besleme okuyucusuna ihtiyacım vardı.

MSXML nesnesini kullanarak ASP'de kendi ayrıştırıcımı yazarak başladım. Bunu yaparak RSS beslemelerinin yaklaşık% 75'ini ayrıştırabildim, ancak RSS akışlarındaki bazı gevşek XML belirtimlerinin programlanmasının çok zor olduğu ortaya çıktı. Eylemde görebilirsin okuyun. Maksimum öğe sayısını (ni), kelimede kesilen karakter sayısını (nc) ve URL'yi iletebilirsiniz. Bir hata ayıklama değişkeni ile gerçek beslemeyi de görebilirsiniz. okuyun.

Çoğu RSS beslemesi gerçekten oldukça "kirli" ve XML dosyasındaki metnin dize işleme koduyla (ugh!) Ayrıştırılmasını gerektirir. Tabii ki, internette hala RSS 'gençliğimizin içindeyiz, bu yüzden şaşırmadım. RSS spesifikasyonları hakkında daha fazlasını okuyun okuyun.

Sonunda küçük bir cevherle karşılaştım. İndirmek için ücretsiz bir ASP sınıfı buldum. Biraz yavaş ama okuyamadığı bir besleme bulamadım. Burada statik bir sürümüm ve burada dinamik bir sürümüm var.

Senaryoya birkaç not. Döndürülen açıklamalardaki bazı HTML etiketlerini temizlemem gerekiyordu. Bunu bulduğum küçük bir temizleme işlevi ile yaptım:

Fonksiyon RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") nPos1> 0 iken Yap nPos2 = InStr (nPos1 + 1, strText, ">") nPos2> 0 ise strText = Left (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Else Exit Do nPos1 = InStr (strText, ">") Loop RemoveHTML = strText End Function

Ayrıca küçük ve düzgün bir kod daha ekledim: Bazen, bir açıklamanın daha çok veya daha azını görüntülemek isteyebilirim. Bununla birlikte, sadece karakter sayısını sınırlarsam, kelimenin ortasındaki açıklamayı kesebilirim. Ben bunu yapmak istemiyorum!

Function Cutoff (strText, intChars) dim intLength dim j intLength = len (strText) eğer intChars> intLength ise ve j = intChars için 0 adım -1'de mid (strText, j, 1) = "" ise sonraki için çıkın j> 0 sonra strText = left (strText, j-1) & "..." else strText = strText end ise end ise Cutoff = strText End Function

(Bu girişte kodumu doğru şekilde görüntüleme konusunda bazı sorunlar yaşadım… bu işlevlerden herhangi birinde sorun yaşarsanız bize bildirin!)

İnternette de birkaç araç daha fark ettim. Var
. NET sürüm, birçok PHP sürümü, bir ton JavaScript sürümü.

Sonuç olarak, RSS spesifikasyonlarının iyileştirilmeye devam edeceğini ve gerçek beslemelerin her durumda XML standartlarına uyacağını umuyorum. TypePad, WordPress vb. Gibi ücretsiz uygulamaların RSS işlevlerini iyileştirmesi gerekir. MySpace, Xanga, LiveJournal vb. Gibi ek blogların RSS işlevselliğini iyileştirmesi gerekir. RSS güçlüdür…Chris Baggott E-posta vs RSS hakkında güzel bir yazı yazdı. İşlevlerini birleştirmenin her ikisinin de etkisini artırabileceğini düşünüyorum!

Ne düşünüyorsunuz?

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.