擷取RSS至您的網站中
- 2008-01-26
- 13998
- 0
有時候希望網站豐富點,但是沒那麼多人力來維護該怎麼辦呢?現在最風行的RSS訂閱就可以幫助我們提高網站的豐富度,此篇就是教各位怎麼把別人的RSS丟到自己的網站內
我們在aspx頁面中加入一個DataList
<asp:Panel ID="Panel2" runat="server" GroupingText="籃球新聞" Width="100%" Height="200px"> <asp:DataList ID="DataList1" runat="server" Width="100%" EnableViewState="False"> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='' Target="_blank" Text=''> </asp:HyperLink> </ItemTemplate> <ItemStyle HorizontalAlign="Left" /> </asp:DataList> <asp:Literal ID="litError2" runat="server" EnableViewState="False"> </asp:Literal> </asp:Panel>
然後在.CS頁面中的Page_Load事件中這樣寫
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.DataList2.DataSource = readRss("http://sports.news.yam.com/rss/rss_basketball.xml", litError2); this.DataList2.DataBind(); } }
因為上方我們調用了一個readRss方法所以當然有下方的code囉
DataTable readRss(string url, Literal error) { XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(url); } catch { error.Text = "系統繁忙,暫不提供此資訊..."; } DataTable dt = new DataTable(); dt.Columns.Add("title"); dt.Columns.Add("link"); for (int i = 0; i < 9; i++)//我只抓九筆新聞 { XmlNode xNode = xmlDoc.SelectNodes("//item").Item(i); if (xNode != null) { string title = xNode.SelectSingleNode("title").InnerText; string link = xNode.SelectSingleNode("link").InnerText; if (title.Length > 30)//如果標題大於30個字作以下修改 { title = title.Substring(0, 30) + "...."; } dt.Rows.Add(title, link); } else { error.Text = "目前無新聞..."; break; } } return dt; }
demo這樣寫的方式可以避免因為rss擷取不到,導致整各頁面死掉的問題,如果各位有更好的方法歡迎提供給demo唷
回應討論