Как отобразить RSS-КАНАЛ другого веб-сайта на моем сайте в asp.net ?

#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;
    }