Как отобразить RSS FEED другого сайта на моем сайте в asp.net? - PullRequest
7 голосов
/ 10 июня 2011

Я хочу отображать RSS FEED другого сайта на моем сайте, сделанном в ASP.NET. что мне делать?

Ответы [ 4 ]

14 голосов
/ 10 июня 2011
<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 голос
/ 27 августа 2013

Я сам попал в ту же проблему и наконец исправил.Используйте этот код для решения вашей проблемы.

Этот код является примером, но вы должны изменить свой 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;
    }
1 голос
/ 10 июня 2011

Используйте этот метод, чтобы получить канал, в этом примере я привязываю элемент управления Data к повторителю, чтобы показать канал 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;
    }
}
1 голос
/ 10 июня 2011

Вы можете добавить внешний канал в службу 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>
...