PDA

View Full Version : سوال: نمایش اخبار سایت های دیگر در سایت خود



mahdidabaghi
دوشنبه 31 تیر 1392, 01:04 صبح
سلام به دوستان و اساتید
من میخوام سایتی طراحی کنم که یکی از کاراش اینه بیاد و از n سایت خبری کل خبرها به انضمام عکس و ویدیو و ... مربوط به اون خبر و لینک سایت رو بگیره و توی سایتم نشون بده.
من تونستم rss سایت ها رو اکی کنم ولی فقط متن اونا توی سایتم میاد ولی من میخوام مواردی رو هم که در بالا عرض کردم هم اضافه شه.
سپاسگزار میشم بنده رو راهنمایی بفرمایید این مشکل رو چجوری میشه حل کنم؟

mohsen_1687
دوشنبه 31 تیر 1392, 01:13 صبح
فک نکنم بشه این کارو انجام داد ؛ اخه به دیتابیسش که دسترسی نداری , فقط اون خبرهاییو که خود سایت اجارشو داده(همون فیلد هایی از دیتابیسش که بصورت xml منتشر میکنه) رو میشه تو سایت خودت قرار بدی

mahdidabaghi
دوشنبه 31 تیر 1392, 03:04 صبح
فک نکنم بشه این کارو انجام داد ؛ اخه به دیتابیسش که دسترسی نداری , فقط اون خبرهاییو که خود سایت اجارشو داده(همون فیلد هایی از دیتابیسش که بصورت xml منتشر میکنه) رو میشه تو سایت خودت قرار بدی
ممنون مهندس ... منم میخوام همون خبرهایی رو که منتشر میکنه رو توی سایتم نشون بدم .البته اگه عکس و فیلم و ... هر چیز دیگه ای هم که مربوط به اون خبر میشه رو هم میخوام. و همچنین نام سایتی که این خبر رو منتشر کرده.

mohsen_1687
دوشنبه 31 تیر 1392, 03:32 صبح
ببین این بدردت میخوره


<asp:Repeater ID="myRepeater" runat="server">
<HeaderTemplate>
<rss version="2.0">
<channel>
<title>نگین ابتکار</title>
<link>http://www.neginebtekar.ir</link>
<description>

</description>
</HeaderTemplate>
<ItemTemplate>
<a style="font-family:xx0; color:White; font-size:larger " href='<%# FormatForXML(Eval("link")) %>' target="_blank">
<%# FormatForXML(Eval("title"))%>
</a>
<br />
<a style="font-family:xx0; color:White; font-size:large " ><%# FormatForXML(Eval("description")) %></a>
<br />

</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<a style="font-family:xx0; color:White; font-size:x-large " href='<%# FormatForXML(Eval("link")) %>' target="_blank">
<%# FormatForXML(Eval("title"))%>
</a>
<br />
<a style="font-family:xx0; color:White; font-size:large " ><%# FormatForXML(Eval("description")) %></a>
<br />

</ItemTemplate>
</asp:Repeater>



protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

//Repeater2.DataSource = GetRss("http://www.Fakhr.somee.com/Show/RSS.aspx");
//myRepeater.DataSource = GetRss("http://www.cookery.ir/pages/rss.aspx");

string rss1 = "http://www.ashpazonline.com/rss.xml";
string rss2 = "http://www.cookery.ir/pages/rss.aspx";
Repeater2.DataSource = GetRss(rss1);
myRepeater.DataSource = GetRss(rss2);
myRepeater.DataBind();
Repeater2.DataBind();
}
}
protected DataTable GetRss(string strURL)
{
XmlTextReader reader = new XmlTextReader(strURL);
DataSet ds = new DataSet();
ds.ReadXml(reader);
DataTable d0 = ds.Tables[0];
DataTable d1 = ds.Tables[1];
DataTable d2 = ds.Tables[2];
return d2;
}
protected static string FormatForXML(object input)
{
string data = input.ToString();
data = data.Replace("&", "&amp;");
data = data.Replace("\"", "&quot;");
data = data.Replace("'", "&apos;");
data = data.Replace("<", "&lt;");
data = data.Replace(">", "&gt;");
return data;
}

mahdidabaghi
دوشنبه 31 تیر 1392, 12:12 عصر
ممنونم مهندس
ولی من میخوام عکس رو هم به انضمام خبر بگیرم . واسه عکس چه پیشنهادی دارین؟

farhud
دوشنبه 31 تیر 1392, 14:27 عصر
try
{
XmlDocument xmld = new XmlDocument();
XmlNodeList items = default(XmlNodeList);
xmld.Load("نشانی آر اس اس");
items = xmld.SelectNodes("/rss/channel/item");
string title = string.Empty;
string link = string.Empty;
string desc = string.Empty;
string st = "";
int i = 0;

foreach (XmlNode item1 in items)
{
title = string.Empty;
link = string.Empty;
desc = string.Empty;
foreach (XmlNode node1 in item1.ChildNodes)
{
if (node1.Name == "title")
{
title = node1.InnerText;
if (title != null && title != "")
i += 1;
}
if (node1.Name == "link")
link = node1.InnerText;
if (node1.Name == "description")
{
desc = node1.InnerText;

}
}
st += "<a href=\"" + link + "\" style=\"text-decoration:none;\">" + title + "</a><br>" + desc + "<br>";
}
lblBody.Text = st;
lblNo.Style.Add(HtmlTextWriterStyle.Color, "White");
lblNo.Text = i.ToString() + " خبر";
Page.Title += " - " + ddl.SelectedItem.ToString();
}
catch (Exception ex)
{
lblBody.Text = ex.Message.ToString();
}

mahdidabaghi
دوشنبه 31 تیر 1392, 15:18 عصر
try
{
XmlDocument xmld = new XmlDocument();
XmlNodeList items = default(XmlNodeList);
xmld.Load("نشانی آر اس اس");
items = xmld.SelectNodes("/rss/channel/item");
string title = string.Empty;
string link = string.Empty;
string desc = string.Empty;
string st = "";
int i = 0;

foreach (XmlNode item1 in items)
{
title = string.Empty;
link = string.Empty;
desc = string.Empty;
foreach (XmlNode node1 in item1.ChildNodes)
{
if (node1.Name == "title")
{
title = node1.InnerText;
if (title != null && title != "")
i += 1;
}
if (node1.Name == "link")
link = node1.InnerText;
if (node1.Name == "description")
{
desc = node1.InnerText;

}
}
st += "<a href=\"" + link + "\" style=\"text-decoration:none;\">" + title + "</a><br>" + desc + "<br>";
}
lblBody.Text = st;
lblNo.Style.Add(HtmlTextWriterStyle.Color, "White");
lblNo.Text = i.ToString() + " خبر";
Page.Title += " - " + ddl.SelectedItem.ToString();
}
catch (Exception ex)
{
lblBody.Text = ex.Message.ToString();
}


ممنون ولی عکس رو چی کار کنم؟

farhud
دوشنبه 31 تیر 1392, 18:00 عصر
عکس توسط خود سایت در قسمت توضیحات قرار داده می شه و در متغیر desc ذخیره و نمایش داده میشه. می‌تونی این کدها را با یک سایت امتحان کنی. اول آر اس اس اون سایت را در مرورگر (مثل اپرا و یا فایرفاکس) باز کن. و بعد با استفاده از این کدها نتیجه را ببین و مفایسه کن.

من از این کدها استفاده کرده ام و هر سایتی که در خروجی آر اس اس عکس داشت، عکس ها نمایش داده شده است.

shahram176
یک شنبه 18 اسفند 1392, 17:37 عصر
تو صفحه باید از چه کنترل هایی استفاده کنم؟

farhud
دوشنبه 19 اسفند 1392, 13:17 عصر
یک کنترل Label برای نمایش خبرها و یک کنترل Label برای نمایش تعداد خبرها.