#c# #.net #asp.net #rss #feed
#c# #.net #asp.net #RSS-канал #лента
Вопрос:
Я хочу отобразить RSS-канал другого веб-сайта на моем сайте, созданном в ASP.NET . что мне делать?
Комментарии:
1. Вы хотите обработать и сохранить внешний канал перед отображением веб-страницы вашего сайта?
2. нет, я просто хочу отобразить RSS-канал, связанный с недвижимостью другого веб-сайта, на моем сайте
Ответ №1:
<asp:DataList ID="DataList1" runat="server" DataSourceID="XmlDataSource1">
<ItemTemplate>
Title: <a href="<%# XPath("link") %>"><%# XPath("title") %></a><br />
Pulish Date: <%# XPath("pubDate") %><br />
Description: <%# XPath("description") %>
<hr />
</ItemTemplate>
</asp:DataList>
<asp:XmlDataSource ID="XmlDataSource1" Runat="server"
DataFile="http://z.about.com/6/g/electrical/b/rss2.xml"
XPath="rss/channel/item">
</asp:XmlDataSource>
Комментарии:
1. Это большая помощь. Я, вероятно, немного переделаю его для кода, лежащего в основе вызова URL-адреса rss-канала, но в остальном это приятно.
2. @Saurabh как отобразить «rss / канал» в том же каталоге данных?
Ответ №2:
Вы можете добавить внешний канал в службу Feedburner и использовать службу BuzzBoost, чтобы иметь HTML-код для встраивания на свою страницу. Этот код будет отображать последние сообщения из внешнего RSS-канала.
Пример фрагмента:
<script src="http://feeds.feedburner.com/netrat-eu?format=sigpro" type="text/javascript" ></script><noscript><p>Subscribe to RSS headline updates from: <a href="http://feeds.feedburner.com/netrat-eu"></a><br/>Powered by FeedBurner</p> </noscript>
Ответ №3:
Используйте этот метод, чтобы получить доступ к get feed, в этом примере я привязываю данные к элементу управления repeater для отображения RSS-канала.
private void GetRSS()
{
WebRequest rssReq = WebRequest.Create("URL");
//Create a Proxy
WebProxy px = new WebProxy("URL", true);
//Assign the proxy to the WebRequest
rssReq.Proxy = px;
//Set the timeout in Seconds for the WebRequest
rssReq.Timeout = 5000;
try
{
//Get the WebResponse
WebResponse rep = rssReq.GetResponse();
//Read the Response in a XMLTextReader
XmlTextReader xtr = new XmlTextReader(rep.GetResponseStream());
//Create a new DataSet
DataSet ds = new DataSet();
//Read the Response into the DataSet
ds.ReadXml(xtr);
//Bind the Results to the Repeater
rssRepeater.DataSource = ds.Tables[0];
rssRepeater.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
Ответ №4:
Я сам сталкиваюсь с такой же проблемой и, наконец, исправлен. Используйте этот код для решения вашей проблемы.
Этот код является примером, но вам необходимо изменить свой URL и узлы XML в RSS.
public static string GetRSS()
{
try
{
XmlDocument newsUrl = new XmlDocument();
newsUrl.Load("yoururl");
XDocument doc = XDocument.Parse(newsUrl.InnerXml);
var docs = doc.Root.Element("channel").ToString();
newsUrl.LoadXml(docs);
XmlNodeList idNodes = newsUrl.SelectNodes("channel/item");
StringBuilder sb = new StringBuilder();
int count = 0;
count = idNodes.Count;
foreach (XmlNode node in idNodes)
{
sb.Append("<div><div><div><a href=" node["nodename"].InnerText ">" node["nodename"].InnerText "</a></div>");
sb.Append("<div>" node["nodename"].InnerText "</div></div>");
sb.Append("<div>" node["nodename"].InnerText "</div></div>");
........
}
return sb.ToString();
}
catch (Exception ex)
{
throw ex;
}