محلل ASP RSS ، قارئ الأعلاف

إيداع الصور 4651719 ثانية

في نهاية هذا الأسبوع ، كنت ملتصقًا بجهاز الكمبيوتر المحمول الخاص بي بحثًا في الشبكة عن برامج قراءة موجز ويب لـ RSS على شبكة الإنترنت. السبب هو أنني أردت أن أكتب قارئ موجز RSS لـ ASP يعرض الخلاصة بحيث يمكن تحويل المحتوى تلقائيًا إلى بريد إلكتروني بتنسيق HTML. لذلك بالنسبة للأشخاص الذين يرغبون في حجز جزء من رسائلهم الإخبارية عبر البريد الإلكتروني لمقالاتهم في المدونة أو المنشورات ، يمكن دمجها بسهولة. نظرًا لأن JavaScript لا يعرض المحتوى فعليًا حتى يقوم العميل بتحميل البرنامج النصي وتنفيذه ، فإن العدد الكبير من متصفحات JavaScript RSS لم تكن مفيدة. كنت بحاجة إلى قارئ موجز RSS من جانب الخادم.

بدأت بكتابة المحلل اللغوي الخاص بي في ASP باستخدام كائن MSXML. لقد تمكنت من تحليل حوالي 75٪ من موجزات RSS أثناء القيام بذلك ، ولكن ثبت أن بعض مواصفات XML فضفاضة على موجزات RSS كانت صعبة للغاية. يمكنك رؤيتها في العمل من هنا. يمكنك تمرير الحد الأقصى لعدد العناصر (ni) ، وعدد الأحرف المقطوعة عند الكلمة (nc) ، وكذلك عنوان URL. يمكنك أيضًا مشاهدة الخلاصة الفعلية باستخدام متغير debug من هنا.

العديد من موجزات RSS "قذرة" تمامًا وتتطلب تحليل النص في ملف XML باستخدام رمز معالجة السلسلة (لاف!). بالطبع ، ما زلنا في "شباب" خدمة RSS على الشبكة ، لذا فأنا لست متفاجئًا. اقرأ المزيد عن مواصفات RSS من هنا.

أخيرًا ، صادفت جوهرة صغيرة. لقد وجدت فئة ASP مجانية للتنزيل. إنها بطيئة بعض الشيء ، لكنني لم أجد موجزًا ​​لم يتمكن من قراءته. لدي نسخة ثابتة هنا ونسخة ديناميكية هنا.

بضع ملاحظات على البرنامج النصي. كنت بحاجة إلى مسح بعض علامات HTML في الأوصاف التي تم إرجاعها. لقد فعلت ذلك مع القليل من وظيفة التنظيف التي وجدت:

الوظيفة RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText، ">") Do while nPos1> 0 nPos2 = InStr (nPos1 + 1، strText، ">") إذا nPos2> 0 ثم strText = Left (strText، nPos1 - 1) & Mid (strText، nPos2 + 1) خروج آخر ثم قم بإنهاء If nPos1 = InStr (strText، ">") Loop RemoveHTML = strText End Function

لقد أضفت أيضًا رمزًا صغيرًا أنيقًا آخر: في بعض الأحيان ، قد أرغب في عرض وصف أكثر أو أقل. ومع ذلك ، إذا قمت ببساطة بتحديد عدد الأحرف ، فقد أقطع الوصف في منتصف الكلمة. لا اريد ان افعل ذلك!

قطع الوظيفة (strText، intChars) dim intLength dim j intLength = len (strText) if intChars> intLength ثم لـ j = intChars إلى 0 خطوة -1 إذا منتصف (strText، j، 1) = "" ثم الخروج إلى التالي إذا كان j> 0 ثم strText = left (strText، j-1) & "..." else strText = strText end if if end if Cutoff = strText End Function

(واجهت بعض المشاكل في عرض الكود الخاص بي بشكل صحيح في هذا الإدخال ... أخبرني إذا كانت لديك مشاكل مع أي من هاتين الوظيفتين!)

لقد لاحظت أيضًا عددًا قليلاً من الأدوات الأخرى على الشبكة. هناك
. NET الإصدار ، العديد من إصدارات PHP ، الكثير من إصدارات JavaScript.

في الختام ، آمل أن يستمر تحسين مواصفات RSS وأن تتوافق الخلاصات الفعلية مع معايير XML في جميع الحالات. تحتاج التطبيقات المجانية مثل TypePad و WordPress وما إلى ذلك إلى تحسين وظائف RSS الخاصة بها. تحتاج المدونات الإضافية مثل MySpace و Xanga و LiveJournal وما إلى ذلك إلى تحسين وظائف RSS الخاصة بها. RSS قوي ...كريس باجوت كتب قطعة لطيفة على البريد الإلكتروني مقابل RSS. أعتقد أن الجمع بين وظائفهم يمكن أن يزيد من تأثير كليهما!

ما رأيك؟

يستخدم هذا الموقع نظام Akismet لتقليل الرسائل الضارة. تعرف كيف تتم معالجة بيانات تعليقك.