HOW 2 LEARN ASP.NET
نویسنده : delshad
تاریخ  : ۱۳۸۵/۷/۱
امتیاز :
بازدید : 7731
موضوع : ساختن rss و نوشتن در فایل های xml توسط StreamWriter
توضیحات : در این مقاله قصدم اینه ساختن rss و نوشتن در فایل های xml رو توسط یک StreamWriter توضیح بدم .
     

 

برای شروع فرض کنیم که شما یک وبلاگ ساختید و قصد دارید مطالبی که در وبلاگتون مینویسید داخل یک rss ثبت بشه.
توضیح بدم که rss یک فایل xml هست که از فرمت استاندارد شده ای تبعیت می کنه و اگر شما هم این استاندارد رو رعایت کنید دیگران می تونن از این فایل شما استفاده کنن.
Rss بیشتر در سایت های خبری و وبلاگ ها کار برد داره .

ابتدا فرمت استاندارد rss رو معرفی می کنم :

* <title> : عنوان مطلب منتشر شده ( خبر ، مقاله ) را در خود ذخيره می نمايد.
* <link> : آدرس مربوط به صفحه وب حاوی تمامی اطلاعات مرتبط با عنوان منتشر شده را مشخص می نمايد .
* <description> : اطلاعاتی خلاصه در رابطه با عنوان مطلب منتشر شده ( خبر ، مقاله ) را در خود ذخيره می نمايد .

در نهایت فایل xml چیزی شبیه به نوشته های زیر خواهد بود :

 
<rss version="2.0">
	<channel>
		<title>HOW2LEARNASP.NET</title>
		<link>http://www.how2learnasp.net/</link>
		<description>Asp.Net Learning ,آموزش asp.net ,علی دلشاد,Ali Delshad</description>
		<item>
			<pubDate>۱۳۸۵/۶/۳۰</pubDate>
			<title>انقیاد داده های ( Binding ) در Menu یا Treeview</title>
			<link>article_print.aspx?code=06b58a20941c47e29488e8fcb935a6cc</link>
			<description>در این مقاله قصد دارم انقیاد داده ها رو درکنترل منو به 3 روش مختلف توضیح بدم .</description>
		</item>
		<item>
			<pubDate>۱۳۸۵/۵/۲۹</pubDate>
			<title>کار کردن با بانک های اطلاعاتی قسمت دوم ( روش متصل)</title>
			<link>article_print.aspx?code=2a2d01dae48a493b9f989e2240a7a084</link>
			<description>در این بخش اعمال متداول در بانک اطلاعاتی روبصورت متصل توضیح خواهم داد.</description>
		</item>
		<item>
			<pubDate>۱۳۸۵/۵/۲۱</pubDate>
			<title>تفاوت بین اسکریپتهای ClientSide و اسکریپتهای ServerSide</title>
			<link>article_print.aspx?code=3c7d0b5f397d4fb2b4581a0e3d57ba97</link>
			<description>تفاوت برنامه نویسی سرور ساید و کلاینت ساید رومورد بررسی قرار خواهم داد.</description>
		</item>
	</channel>
</rss>
 
 خوب حالا که با این استاندارد آشنا شدیم باید ببینیم که این فایل چطور ساخته شده و چگونه بروز میشه.
خوب فرض کنیم شما برای وبلاگتون یک دیتابیس دارید به نام myweblog که این دیتابیس شامل یک جدول به نام tbl_blog هست.
این جدول شامل 4 ستون به نام های :
Myid : کد مطلب ارسالی
blog_subject : عنوان مطلب
blog_Description: مطلب اصلی
blog_date : تاریخ ارسال مطلب هست
خوب شما کلی داستان و شعر و مقاله وارد این جدول کردید و همه در این جدول ثبت شده حالا می خواهیم تمام این مطالب رو وارد یک فایل xml کنیم برای این منظور یک صفحه وب به پروژتون اضافه کنید ، اسم اونو rss.aspx بگذارید ، وارد صفحه code-behind شده ابتدا سه فضا نام زیر رو وارد نمایید :
 
Imports System.Data ' برای کار کردن با دیتاست
Imports System.Data.OleDb ' برای اتصال و ارتباط با بانک اطلاعاتی
Imports System.IO ' برای نوشتن در فایل ها


سپس زیر روال زیر رو مطابق زیر تعریف نمایید :

    Sub Create_my_xml()
 
        ' ساخت یک متغیر از نوع دیتا ریدر
        Dim DBReader As OleDbDataReader
        ' ساخت یک متغیر از نوع استریم رایتر
        Dim FileWriter As StreamWriter
 
        'تعیین شی و رشته اتصال به بانک اکسس
        dim con as New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\myweblog.mdb")
 
        'تعیین شی و رشته تقاضا
        Dim cmd As New OleDbCommand("SELECT * FROM tbl_blog", con)
 
        'باز نمودن اتصال
       con.Open()
        'نسبت دادن خوننده سطر ها به دیتا ریدر
        DBReader = cmd.ExecuteReader()
 
        'این دستور فایل مورد نظر رو می سازه
        FileWriter = File.CreateText(MapPath("RSS.xml"))
 
        'دستورات زیر خط به خط داخل فایل تعین شده در بالا رایت می کنند
        FileWriter.WriteLine("<rss version=""2.0"">")
        FileWriter.WriteLine("<channel>")
        FileWriter.WriteLine("<title>HOW2LEARNASP.NET</title>")
        FileWriter.WriteLine("<link>http://www.how2learnasp.net</link>")
        FileWriter.WriteLine("<description>Asp.Net Learning ,آموزش asp.net ,علی دلشاد,Ali Delshad </description>")
 
        'اینجا هم چون تعداد نوشته های شما متغیر هست توسط یک حلقه وایل همه اونارو رایت می کنیم
 
        While DBReader.Read()
            FileWriter.WriteLine("<item>")
            FileWriter.WriteLine("<pubDate>" & DBReader("blog_date") & "</pubDate>")
            FileWriter.WriteLine("<title>" & DBReader("blog_subject") & "</title>")
            FileWriter.WriteLine("<link>http://how2learnasp.net/article.aspx?code=" & DBReader("blog_id") & "</link>")
            FileWriter.WriteLine("<description>" & DBReader("blog_Description") & "</description>")
            FileWriter.WriteLine("</item>")
        End While
 
 
        FileWriter.WriteLine("</channel>")
        FileWriter.WriteLine("</rss>")
        FileWriter.Close()
 
        ' بستن دیتا ریدر
        DBReader.Close()
 
        'بستن اتصال
        con.Close()
 
    End Sub


خوب حالا زیر روال مربوط به رویداد لود شدن صفحه رو باز کنید و کد های زیر رو داخل اون بنویسید :

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Call Create_my_xml() ' ساب روتین فوق رو فراخوانی می کنه
        Response.Redirect("rss.xml") ' کاربر رو به فایل مورد نظر هدایت می کنه
    End Sub

چند نکته :

1. شما میتونید از استاندارد rss استفاده نکنید و یک فایل xml برای استفاده های گوناگون مثلا استفاده در منو ها که در مقالات دیگر توضیح دادم بسازید.
2. دقت کنید که پوشه ای که دارید داخل اون فایل xml رو میسازید که در این شاخه روت هست باید مجوز و پرمیشن رایت رو داشته باشه وگرنه با خطای Access denied مواجه خواهید شد.
3. برای رایت کردن روی فایل های xml شی دیگری به نام xmlwriter هم هست که در مقالات بعدی به آن اشاره خواهم کرد.

 


 

 

 
امتیاز بدهید :

نویسنده : فاطمه rita_bazekavat@yahoo.com ۱۳۸۹ بيست و هشتم ارديبهشت
سلام از مقاله خوبتمون ممنونم
نویسنده : شراراه sharareh_sama@yahoo.com ۱۳۸۹ بيست و يکم ارديبهشت
سایتم ASP ولی زبانم C#. اگه سی شارپ این کدها رو بخوام نه VB باید چی کار کنم؟
نویسنده : محمدرضا ravand@ymail.com ۱۳۸۹ نهم فروردين
سلام من كدهاي Rss feeds رو نوشتم ولي نمي خوام با برنامه نويسي دات نت يه برنامه درست كنم كه اين كد ها رو بخونه و مي خوام با Rss feeds مرورگر اكسپلورر 7 اون كدها رو بخونه مي خواستم توي سايت پرشين گيگ امتحان كنم آيا ميشه اين كار رو كرد؟ http://jostojoogar.blogsky.com/
نویسنده : mohamad rs.mohamad@yahoo.com ۱۳۸۸ بيست و پنجم آبان
سایتتون مطالب مفید زیادی داره می خوایتم بدونم رده بندی اکسس و sqlطبق dbmsچه جوریه
نویسنده : احسان ولی نوری clicktehran@yahoo.com ۱۳۸۸ هفدهم مهر
سلام. من از اجرای این کد دو نتیجه متفاوت میگیرم! من از کد شما برای ایجاد RSS استفاده کردم. حالا ایراد کار اینجاست که وقتی به صورت Local فایل rss.aspx رو اجرا میکنم فایل rss.xml را بدرستی نمایش میده ولی وقتی rss.aspx رو سمت سرور اجرا میکنم یک صفحه xml خالی نشون میده. نکته صروری اینه که در هر دو حالت دارم به یک دیتابیس (دیتابیسی که روی سرور آپلود شده) وصل میشم. یعنی در هر دو حال منبع داده ها یکی است. از طرفی وقتی به فایل های سرور نگاه می اندازم میبینم که فایل XML در سمت سرور ایجاد شده و دارای داده است ولی داده ها نشان داده نمی شوند. آیا این جزء تنظیمات سرور است تا بتواند محتویات فایل XML را نمایش دهد یا اینکه ایراد از جای دیگریست؟

 
نظر بدهید :
لطفا سوالات فنی خود را در تالار گفتگو www.forum.how2learnasp.net مطرح نمایید
نام :  
ایمیل :    
نظرات :
 
Xml rss feed

 

Valid CSS! Atom rss feed
Ali Delshad Official Site