PDA

View Full Version : آموزش: رباط Rss خوان Asp.Net



ایمان مدائنی
چهارشنبه 08 خرداد 1392, 16:04 عصر
سلام دوستان

امروز براتون یک خبرخوان آماده کردم این یکی برای Asp است
http://madaeny.com/ImagesArticle/3326bda28f6d4b879c96d12ae9f8d4e5.jpg
برای استفاده کافیه لینک rss را در کادر وارد کنید و کلید اجرا رو بزنید

خبر های اون سایت رو میخونه و در گرید براتون نمایش میده

بعد هر کدوم رو خواستید ببینید روی کلیک مشاهده همون خط کلیک میکنید

بریم سراغ کد ها


List<MyClass> my=new List<MyClass>();
var doc = System.Xml.Linq.XDocument.Load(TextBox1.Text);
var rssFeed = from el in doc.Elements("rss").Elements("channel").Elements("item")
select new MyClass()
{
title = el.Element("title").Value,
url = el.Element("link").Value,
};
foreach (var i in rssFeed)
{
my.Add(i);

}
GridView1.DataSource = my;
GridView1.DataBind();

همانطور که میدونید rss با فرمت xml هستند پس برای خوندن اونها از کد زیر استفاده کردیم


var doc = System.Xml.Linq.XDocument.Load(textBox1.Text);

برای نگه داری اطلاعات خونده شده هم از یک لیست استفاده کردم


List<MyClass> my=new List<MyClass>();
----------------

class MyClass
{
public string title { get; set; }
public string url { get; set; }
}

بقیه کد ها هم اطلاعات خونده شده رو با حلقه به گرید اضافه میکنه

نمونه رو ضمیمه کردم امیدوارم خوشتون اومده باشه



موفق و پیروز باشید

منبع مقاله : Madaeny.com (http://www.madaeny.com/)

bitcob589
چهارشنبه 08 خرداد 1392, 23:55 عصر
چگونه می توان به صورت خود کار جدیدترین مطالب که در rss سایتهای مختلف گذاشته می شود در سایت خود نمایش داد

ایمان مدائنی
پنج شنبه 09 خرداد 1392, 00:01 صبح
شما میتوانید در ساعتی خواص این به اصطلاح رباط ها رو فعال کنی
حالا برای اینکه تکراری ثبت نکنه شما میتونی قبل از ثبت عنوان چک کنی که اگه نبود ثبت انجام بشه

bitcob589
پنج شنبه 09 خرداد 1392, 00:12 صبح
شما میتوانید در ساعتی خواص این به اصطلاح رباط ها رو فعال کنی
حالا برای اینکه تکراری ثبت نکنه شما میتونی قبل از ثبت عنوان چک کنی که اگه نبود ثبت انجام بشه
آیا روشی وجود دارد به محض اضافه شدن اطلاعات جدید به rss سایتهای مورد نظر آن مطلب را همان لحظه در سایت خود نمایش داد

mehdin69
پنج شنبه 09 خرداد 1392, 01:07 صبح
مرسی
البته من خیلی وقت پیشا کامل شدش رو نوشتم
این یه چند خط هم جواب گو هست


var reader = XmlReader.Create(TextBox1.Text);
var feed = SyndicationFeed.Load(reader);

reader.Close();
string content = "Null";

string s = "";
foreach (SyndicationItem i in feed.Items)
{
//content = ((TextSyndicationContent)i.Content).ToString();
s += i.Title.Text + "<br />" + i.Summary.Text + "<br />" + i.PublishDate.ToString() + "<br />" +content;

s += "<hr />";
}
Literal1.Text = s;

فقط نمی دونم چرا content رو نمی تونه بگیره با این کد


content = ((TextSyndicationContent)i.Content).ToString();


کسی نمیدونه چرا این خط دستور جواب نمیده؟
:((

bitcob589
شنبه 11 خرداد 1392, 09:49 صبح
آیا این امکان وجود ندارد به محض اضافه شدن اطلاعات جدید به rss سایتهای مورد نظر آن مطلب را همان لحظه در سایت خود نمایش داد