السلام عليكم ورحمة الله وبركاته
يكاد لا يخلوي موقع حديث يتبع احدث التقنيات من خدمة ال
Rss
من الامثلة مثلا موقع الجزيرة نت
http://www.aljazeera.net/Portal/RSS/RSS-Portal.xml
هذه هي صفحة RSS الموجود في موقع الجزيرة نت والتي يمكنك من خلالها سحب كل وجديد الاخبار المنشورة على الموقع مباشرة من موقعهم الي موقعك
وللتعرف اكثر على خدمة ال RSS ابحث عن مواضيع سابقة في هذا المنتدى تشرح هذه الخدمة شرح نظري عن فوائدها وهي كثيرة هنا
دعونا اولا نتعلم طريقة بناء صفحات ال RSS لكي نفهم طريقة وأسلوب التعامل معها ومن ثم نتعلم طريقة قرائتها في الموقع
صفحات ال RSS هي عبارة عن ملف مكتوب بلغة ال XML
وهذه صفحة RSS لمثال عبارة عن مجموعة من المواقع الالكتروني كل موقع مكتوب عنه بعض المعلومات وسوف نتطرق لها بالتفصيل , الكود التالي نخزنه في صفحة بامتداد xml
كود:
<?xml version="1.0" encoding="windows-1256"?>
<rss version="2.0">
<channel>
<title>عنوان الموقع</title>
<link>http://www.no4u.net</link>
<ahmad>احمد ,الاردن</ahmad>
<language>ar</language>
<item>
<link>http://www.swalif.net</link>
<title>موقع سوالف سوفت</title>
<description>موقع سوالف سفت هو منتدى عربي يجمع افضل المبرمجين والمطورين العرب في مجال الانترنت وتكنلوجيا المعلومات</description>
<pubDate>2/1/2000</pubDate>
<category>موقع تطوير المواقع</category>
<comments>http://www.swalif.net</comments>
</item>
<item>
<link>http://www.aljazeera.net</link>
<title>موقع الجزيرة نت</title>
<description>الموقع الاخباري الاول عربياً وعالميا ,موقع الجزيرة نت</description>
<pubDate>22/3/2000</pubDate>
<category>مواقع الاخبار</category>
<comments>http://www.swalif.net</comments>
</item>
</channel>
</rss>
بداية الكود تعريف بان الصفحة مستخدمة لغاية ال RSS
ومن ثم الاصدار
كود:
<?xml version="1.0" encoding="windows-1256"?>
<rss version="2.0">
</rss>
ما بين فتحة ال RSS واغلاقها نقوم باضافة العناصر وكل عنصر هنا سوف يمثل موقع الكتروني يحتوي على خصائص كل موقع
في البداية نضيف وصف وعنوان وحقوق موقعنا الالكتروني
كود:
<channel>
<title>عنوان الموقع</title>
<link>http://www.no4u.net</link>
<ahmad>احمد ,الاردن</ahmad>
<language>ar</language>
</channel>
وهو المعلومات التي سوف تظهر في اعلى الصفحة عن موقعنا الالكتروني بالاضافة لانها تمثل الجدول الاول اذا اعتبرنا ان الملف عبارة عن قاعدة بيانات ويمكنك ان تعتبره هكذا لاننا سوف نتعامل معه في الكود بنفس الطريقة التي نتعامل بها مع قواعد البيانات
الان قبل اغلاق ال channel
نقوم باضافة العناصر وهي عبارة عن المواقع الالكترونية كل عنصر Item يبدأ بفتحة العنصر
<item>
وينتهي بالاغلاق
</items>
وبين فتحتة واغلاقة نقوم بتعريف الموقع الالكتروني الاول
وهو مثلا موقع سوالف سوفت
كود:
<link>http://www.swalif.net</link>
<title>موقع سوالف سوفت</title>
<description>موقع سوالف سفت هو منتدى عربي يجمع افضل المبرمجين والمطورين العرب في مجال الانترنت وتكنلوجيا المعلومات</description>
<pubDate>2/1/2000</pubDate>
<category>موقع تطوير المواقع</category>
<comments>http://www.swalif.net</comments>
لاحظ اضفنا في التاج الاول عنوان الموقع وفي التاج الثاني اسمه وفي التاج الثالث وصف عنه وفي التاج الرابع تاريخ نشره وفي الخامص اسم القسم الذي يتبع له وفي السادس رابط الكتروني للمزيد من التفاصيل
الان نضيف العنصر الثاني او الموقع الالكتروني الثاني ولنفرض انه موقع الجزيرة نت
كود:
<item>
<link>http://www.aljazeera.net</link>
<title>موقع الجزيرة نت</title>
<description>الموقع الاخباري الاول عربياً وعالميا ,موقع الجزيرة نت</description>
<pubDate>22/3/2000</pubDate>
<category>مواقع الاخبار</category>
<comments>http://www.swalif.net</comments>
</item>
هكذا اصبح لدينا موقعين في ملف ال RSS
هم مجرد مثال طبعا في موقعك الخاص لن تقوم بكتابة هذا الملف بيدك بل سوف تقوم بانشائه عن طريق الكود واضافة المواضيع الجديدة به بشكل تلقائي وهذا سوف نتطرق له في الدرس القادم ان شاء الله
نكمل درسنا
الان اصبح لدينا ملف RSS
خزنه باسم مثلا rss.xml
وقم بوضعه في مجلد ال wwwroot
فيكون عنوانه على المتصفح هو
http:://localhost/rss.xml
اطلبه بالمتصفح وتأكد من عمله بشكل سليم
الان نأتي للمرحلة الثانيه وهي قرائة هذا الملف في صفحات ال aspx
للتجربة فقط في البداية سوف نقراء الملف في اداة من نوع داتا جريد GridView
اولا نقوم بتعريف متغير لقرائة الملف ومن ثم نخزن محتويات المتغير الي هي محتويات الملف في داخل DataSet
وبعد هذا الامر لا يختلف كثيرا عن قواعد البيانات جداول وحقول في داخل ال DataSet تقوم بافراغها
لقرائة الملف بهذه الطريقة
كود:
Dim Reader As XmlTextReader = New XmlTextReader("http://localhost/rss.xml")
Dim dsRss As DataSet = New DataSet
dsRss.ReadXml(Reader)
اولا قرائنا الملف عن طريق عنوان الالكتروني وعرفناه في متغير من نوع XMLTextReader
ومن ثم افرغنا المعلومات في داخل ال DataSet واسمها هنا هو dsRss
الان حسب المعطيات الموجوده في الملف فان التحليل المنطقي لمحتويات الداتا ست هو التالي
1- جدول الاول ويحتوي معلومات الموقع والحقوق
2- الجدول الثاني ويحتوي العناصر والتي هي المواقع الالكترونية
الجدول الاول يتكون من سجل واحد يحتوي على 4 حقول الحقل الاول هو اسم موقعنا والثاني عنوانه والثالث اسم صاحب الموقع والرابع اللغة وهي العربية
الجدول الثاني يحتوي على عدد غير معروف من العناصر اي المواقع اي السجلات , في مثالنا هو 2 لكن في الحقيقه قد يكون العدد هنا غير معروف ولا تعلم كم سيكون
كل عنصر يكون عبارة عن سجل واحد هذا السجل يتكون من 6 حقول وهي الحقل الاول عنوان الموقع والحقل الثاني هو اسمه ووووو الخ
الان لافراغ معلومات المواقع في داخل ال GridView
كل ماعليك هو افراغ محتويات الجدول الثاني بالطريقة التالية
كود:
GridView1.DataSource = dsRss.Tables(2)
GridView1.DataBind()
سوف يقوم بقرائة كل محتويات الجداول وهي المواقع وعرضها في داخل الداتا جريد
الان للتحكم بمعلومات المواقع او العناصر او مايمكن تسميتها بالحقول في السجل واحد واحد بالطريقة التالية
dsRss.Tables(2).Rows(0)(0) هذا يعيد عنوان الموقع الاول
dsRss.Tables(2).Rows(1)(0) هذا يعيد عنوان الموقع الثاني
dsRss.Tables(2).Rows(0)(1) هذا يعيد اسم الموقع الاول
dsRss.Tables(2).Rows(1)(1) هذا يعيد اسم الموقع الثاني
وهكذااااااااااا
يمكنك تجربة الطريقة اعلاه في داخل اداة من نوع Leabel وعمل بها كود Html للعرض وعرضها جميعها باستخدام التكرار For مثلا الكود التالي
كود:
Dim I As Integer = Nothing
Label1.Text = ""
For I = 0 To dsRss.Tables(0).Rows.Count
Label1.Text &= "عنوان الموقع : " & dsRss.Tables(2).Rows(I)(0) & "<br>"
Label1.Text &= "اسم الموقع : " & dsRss.Tables(2).Rows(I)(1) & "<br>"
Label1.Text &= "وصف الموقع : " & dsRss.Tables(2).Rows(I)(2) & "<br>"
Label1.Text &= "تاريخ النشر : " & dsRss.Tables(2).Rows(I)(3) & "<br>"
Label1.Text &= "القسم : " & dsRss.Tables(2).Rows(I)(4) & "<br>"
Label1.Text &= "عنوان الكامل : " & dsRss.Tables(2).Rows(I)(5) & "<br>"
Label1.Text &= "<br><br><br>"
Next
هذا الكود اعلاه سوف يعيد لنا جميع معلومات الموقع بالترتيب الذي اخترنااااه بكود ال Html
الي هنا ننتهي اليوم وان شاء الله في الدرس القادم رح نتعلم كيف نعمل ملف RSS داينمك يعني نزوده بالمعلومات بطريقة تلقائيه بالكود
وكذلك قرائة ملف بطريقة احترافية اكثر
في امان الله وحفظه