RSS Feed Reader + XmlDataSource + ListView 使用方法 (Search Engine Result 款式)

 
RSS Feed Reader + XmlDataSource + ListView 使用方法 (Search Engine Result 款式)
 

   WebForm6.aspx
 
   <br />
 
   <asp:Label ID="Label2" runat="server" Text="Search Result:" Font-Bold="True" />
 
   <asp:ListView ID="ListView1" runat="server" ViewStateMode="Disabled">
 
      <ItemTemplate>
 
            <table width="600" cellpadding="0" cellspacing="0"><tr><td>
 
               <br />
 
               <asp:HyperLink ID="HyperLink1" runat="server"
               NavigateUrl='<%# Eval("URL") %>' Text='<%# Eval("Title") %>'
               Enabled="True" Target="_blank" /><br />
 
               <asp:Label ID="Label1" runat="server" Text='<%# Eval("Description") %>' />
 
            </td></tr></table>
 
      </ItemTemplate>
 
   </asp:ListView>
 
   <br />
 

 

   WebForm6.aspx.cs
 
   using System;
   using System.Web.UI.WebControls;
   using System.Data;
   using System.Xml;
 
   namespace WebApplication9
   {
      public partial class WebForm6 : System.Web.UI.Page
      {
         protected void Page_Load(object sender, EventArgs e)
         {
            ListView1.DataSource = ReturnNodeList("http://www.zdnet.com.tw/rss/news_webapps.htm").Tables[0];
            ListView1.DataBind();
         }
 
         public DataSet ReturnNodeList(String FeedURL)
         {
 
            XmlDataSource XmlDataSource1 = new XmlDataSource();
 
            XmlDataSource1.DataFile = FeedURL;
 
            XmlDocument xmlDoc = XmlDataSource1.GetXmlDocument();
 
            XmlNodeList nodelist = xmlDoc.SelectNodes("/rss/channel/item");
 
            DataTable dt = new DataTable();
 
            DataSet ds = new DataSet();
 
            dt.Columns.Add("Title");
            dt.Columns.Add("URL");
            dt.Columns.Add("Description");
 
            String Title;
            String Description;
            String URL;
 
            for (int i = 0; i < nodelist.Count; i++)
            {
 
               Title = nodelist[i].SelectSingleNode("title").InnerText;
               URL = nodelist[i].SelectSingleNode("link").InnerText;
               Description = nodelist[i].SelectSingleNode("description").InnerText;
 
               if (Description.Length > 60)
               {
                  Description = Description.Substring(0, 60) + " ……";
               }
 
               dt.Rows.Add(Title, URL, Description);
 
            }
 
            ds.Tables.Add(dt);
 
            return ds;
 
         }
      }
   }