نحوه ايجاد و استفاده از فايل های RSS New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 سه شنبه  8  فروردين  1396  2017  Mar.  28   Tuesday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 ايجاد فايل های RSS و نحوه استفاده از آنان ( بخش دوم )

 مديريت وب

12789

13

4.4

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

ايجاد فايل های  RSS  و نحوه استفاده از آنان ( بخش دوم )

در بخش اول اين مقاله با فايل های RSS و موارد استفاده از آنان آشنا شديم . در بخش دوم به بررسی نحوه ايجاد فايل های RSS با استفاده از يک بانک اطلاعاتی و بهنگام سازی اتوماتيک آنان خواهيم پرداخت .
اطلاعات موجود در فايل های RSS را می توان به صورت دستی و با استفاده از يک اديتور متنی و يا يک اديتور XML ايجاد نمود. در صورتی که فرکانس تغيير اطلاعات زياد باشد، روش فوق گزينه ای مناسب نخواهد بود. در چنين مواردی می توان اطلاعات مورد نظر را از بانک اطلاعاتی مربوطه ( اخبار ، مقالات )  بازيابی و آنان را در فايل RSS درج نمود . بدين ترتيب در صورت بروز هر گونه تغيير در بانک اطلاعاتی ، فايل RSS نيز به صورت اتوماتيک بهنگام می گردد.

مثال : ايجاد  RSS با استفاده از يک بانک اطلاعاتی
در اين مثال قصد د اريم اطلاعات را از يک بانک اطلاعاتی اکسس خوانده و به صورت يک فايل XML با فرمت RSS ذخيره نمائيم .

فرضيات :

  • بانک اطلاعاتی نمونه :  RSS.mdb 
  • جدول حاوی لينک های مورد نظر:  XMLlink
  • جدول XMLLink در بانک اطلاعاتی rss.mdb  دارای لی اوت زير است . اسامی فيلدها در جدول XMLlink مشابه اسامی مورد نياز يک فايل RSS 2.0 در نظر گرفته شده اند .

اندازه

نوع

نام فيلد

 

Date/Time

PubDate

100

Text

Title

100

Text

Link

 

Memo

Description

ايجاد يک فايل RSS

مرحله اول : تايپ کد زير با استفاده از يک ويرايشگر
اسکريپت های زير يک فايل RSS 2.0 را با توجه به اطلاعات موجود در بانک اطلاعاتی RSS.mdb ايجاد و آن را با نام RSS.XML در فهرست ريشه وب مورد نظر ذخيره می نمايد. 

<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.IO" %>

<SCRIPT runat="server">

   Sub Page_Load
       Create_RSS ()
   End Sub

Sub Create_RSS ( )

Dim DBConnection As OleDbConnection
Dim DBCommand As OleDbCommand
Dim DBReader As OleDbDataReader
Dim SQLString As String
Dim FileWriter As StreamWriter

DBConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\RSS.mdb")
DBConnection.Open()
SQLString = "SELECT * FROM XMLLink"
DBCommand = New OleDbCommand(SQLString, DBConnection)
DBReader = DBCommand.ExecuteReader()

FileWriter = File.CreateText(MapPath("RSS.xml"))

FileWriter.WriteLine("<?xml version=""1.0"" encoding=""utf-8"" ?>" )
FileWriter.WriteLine("<rss version=""2.0"">" )

 
FileWriter.WriteLine("<channel>")
FileWriter.WriteLine("<title>Sakha Ravseh </title>")
FileWriter.WriteLine("<link>http://www.srco.ir/</link>")
FileWriter.WriteLine("<description>Software ,Hardware ,Network </description>")

While DBReader.Read()
  FileWriter.WriteLine("<item>")
  FileWriter.WriteLine("<pubDate>" & DBReader("PubDate") & "</pubDate>")
  FileWriter.WriteLine("<title>" & DBReader("Title") & "</title>")
  FileWriter.WriteLine("<link>" & DBReader("Link") & "</link>")
  FileWriter.WriteLine("<description>" & DBReader("Description") & "</description>")
  FileWriter.WriteLine("</item>")
End While

FileWriter.WriteLine("</channel>")
FileWriter.WriteLine("</rss>")
FileWriter.Close()

DBReader.Close()
DBConnection.Close()

End Sub

</SCRIPT>

 مرحله دوم :  پس از ذخيره کد فوق در فايلی با نام MakeRss.aspx و اجرای آن ، فايل RSS.xml ايجاد می گردد .

توضيحات :

  • به منظور بازيابی رکوردهای موجود در بانک اطلاعاتی و ايجاد يک فايل  RSS از ساختار تکرار While استفاده شده است .

  • به منظور نوشتن رکوردهای بازيابی شده در فايل RSS از کلاس StreamWriter دات نت استفاده شده است . بنابراين لازم است که از System.IO در ابتدای برنامه استفاده شود . ( " Import Namespace="System.IO )

  •  namespace فوق کلاس های StreamReader و StreamWriter را به منظور خواندن و نوشتن در فايل های text ارائه می نمايد.
     

  • کلاس StreamReader دارای متدهای متفاوتی  به منظور خواندن فايل های text است :

Dim FileReader As StreamReader

FileReader = File.OpenText(path)
FileLine = FileReader.ReadLine()
FileContents = FileReader.ReadToEnd()

FileReader.Close()

  •  FileReader متغيری است که به عنوان يک شی StreamReader تعريف شده است . متد openText  فايل موجود در مسير مشخص شده را به شی FileReader نسبت می دهد . متد ReadLine يک خط از فايل text را بدون در نظر گرفتن کاراکتر Line-break ، می خواند. با استفاده از  متد ReadToEnd تمامی محتويات فايل با لحاظ نمودن کاراکترهای  line-break ، خوانده می شوند. از متد close  پس از اتمام کار و به منظور بستن فايل استفاده می گردد .

  • کلاس StreamWriter دارای متدهای متفاوتی به منظور نوشتن در فايل های text است :

Dim FileWriter As StreamWriter

FileWriter = File.CreateText(path)
FileWriter = File.AppendText(path)
FileWriter.WriteLine(text)
FileWriter.Write(text)

FileWriter.Close()

  •  FileWriter متغيری است که به عنوان يک شی StreamWriter تعريف شده است . متد CreateText  فايل text موجود  در آدرس Path  را به شی FileWriter نسبت می دهد . متد فوق در صورتی که فايل موجود نباشد آن را ايجاد و در صورت موجود بودن فايل بر روی آن بازنويسی می نمايد .متد AppendText خطوطی را به يک فايل موجود اضافه می نمايد . متد WriteLine يک رشته متن به همراه يک کاراکتر Line-break را به فايل text اضافه می نمايد.  متد Write يک رشته متن را بدون لحاظ  نمودن يک کاراکتر Line-break به فايل text اضافه می نمايد . از متد close  پس از اتمام کار و به منظور بستن فايل استفاده می گردد .
     

  • در ابتدا،  گره ريشه <channel> و اطلاعات مربوط به لينک به سايت ، تعريف شده اند .
     

  • برای هررکورد بازيابی شده از بانک اطلاعاتی يک  گره <item> ايجاد شده است . گره فوق دارای  سه گره فرزند به اسامی <pubDate>, <title>, <link> و <description> می باشد .
     

  • به منظور معرفی فايل RSS  می توان از يک دکمه گرافيکی ( ) که به فايل RSS اشاره می نمايد، استفاده کرد . توجه داشته باشيد که قبل از کليک بر روی دکمه فوق، می بايست فايل RSS با فرآيندی خاص ايجاد شده باشد ( اجرای فايل حاوی اسکريپت های نوشته شده ) .

 بهنگام سازی اتوماتيک فايل  RSS  
محتويات يک فايل RSS متاثر از داده های موجود در بانک اطلاعاتی است . بديهی است در صورتی که لينک های جديدی به بانک اضافه شده و يا لينک هائی حذف گردد ، می بايست فايل RSS بهنگام گردد . در مثال فوق ، عمليات بهنگام سازی فايل RSS صرفا" پس از اجرای اسکريپت های نوشته شده ، انجام خواهد شد ( اجرای فايل MakeRss.aspx ) . ما نيازمند روشی هستيم که بر اساس آن فرآيند بهنگام سازی فايل RSS  به صورت اتوماتيک و با توجه به آخرين اطلاعات موجود در بانک اطلاعاتی ، انجام شود . بدين منظور می توان اسکريپت های توليد کننده فايل RSS را در يک صفحه aspx . مستقر نموده  و پس از ايجاد فايل RSS  و با استفاده از متد Redirect  فايل RSS.xml  نمايش داده شود.
بدين ترتيب ، پس از کليک بر روی لينک مربوطه که معمولا" به صورت يک دکمه گرافيکی  ( ) است ، اسکريپت ها اجراء ، فايل RSS.XML توليد و در نهايت با استفاده از متد Redirect  فايل RSS.xml  نمايش داده می شود.( لينک ارائه شده به صفحه MakeRss.aspx است نه به فايل RSS.xml )

<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.IO" %>

<SCRIPT runat="server">

Sub Page_Load

Dim DBConnection As OleDbConnection
Dim DBCommand As OleDbCommand
Dim DBReader As OleDbDataReader
Dim SQLString As String
Dim FileWriter As StreamWriter

DBConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\RSS.mdb")
DBConnection.Open()
SQLString = "SELECT * FROM XMLLink"
DBCommand = New OleDbCommand(SQLString, DBConnection)
DBReader = DBCommand.ExecuteReader()

FileWriter = File.CreateText(MapPath("RSS.xml"))
FileWriter.WriteLine("<rss version=""2.0"">" )
FileWriter.WriteLine("<channel>")
FileWriter.WriteLine("<title>Sakha Ravseh </title>")
FileWriter.WriteLine("<link>http://www.srco.ir/</link>")
FileWriter.WriteLine("<description>Software ,Hardware ,Network </description>")

While DBReader.Read()
  FileWriter.WriteLine("<item>")
  FileWriter.WriteLine("<pubDate>" & DBReader("PubDate") & "</pubDate>")
  FileWriter.WriteLine("<title>" & DBReader("Title") & "</title>")
  FileWriter.WriteLine("<link>" & DBReader("Link") & "</link>")
  FileWriter.WriteLine("<description>" & DBReader("Description") & "</description>")
  FileWriter.WriteLine("</item>")
End While

FileWriter.WriteLine("</channel>")
FileWriter.WriteLine("</rss>")
FileWriter.Close()

DBReader.Close()
DBConnection.Close()
Response.Redirect("http://www.srco.ir/RSS.xml")

End Sub

</SCRIPT>

 



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382