程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#制作新聞閱讀器(3)

C#制作新聞閱讀器(3)

編輯:關於C語言

然後我們就可以遍歷它的子節點,根據子節點的Name屬性,讀取我們需要的信息。

rss.Channel channel=new rss.Channel();
channel.Items=new Hashtable();
{
 switch ( channelNode.ChildNodes[i].Name )
 {
  case "title":
   {
    channel.Title = channelNode.ChildNodes[i].InnerText;
    break;
   }
  case "item":
   {
    rss.Item item=this.getRssItem(channelNode.ChildNodes[i]);
    channel.Items.Add(channel.Items.Count,item );
    break;
   }
 }
}

如果發現是item子節點,就調用getRssItem函數,同樣通過遍歷子節點的方法,將其子節點內容填入Item結構中,然後再添加到Channel結構的Items集合中。因為本程序並不關心添加到集合的鍵值,只需要它是不重復的值,所以我傳入了Count屬性。

3.將讀出的信息顯示在程序中

將RSS內容讀出後,就需要把信息展示給用戶了。我們這裡用的是基本的TreeView方法,通過遍歷Channel結構的Items集合,將其標題添加到TreeVIEw中。

private void VIEwRss(rss.Channel channel)
{
 treeRss.BeginUpdate();
 treeRss.Nodes.Clear();
 TreeNode channelNode=treeRss.Nodes.Add(channel.Title );
 channelNode.Tag="";
 for (int i=0;i <channel.Items.Count ;i++)
 {
  rss.Item item=(rss.Item)channel.Items[i];
  TreeNode itemNode=channelNode.Nodes.Add(item.Title );
  itemNode.Tag=item.Link;
 }
 treeRss.ExpandAll();
 treeRss.EndUpdate();
}

同時我們還可以設置TreeVIEw的每個子節點的Tag屬性為它對應的鏈接。以便當選中子節點時就可以通過讀取Tag屬性訪問具體的信息。

private void treeRss_AfterSelect(object sender, System.Windows.Forms.TreeVIEwEventArgs e)
{
 TreeNode itemNode=e.Node ;
 string URL=itemNode.Tag.ToString();
 if (URL.Length!=0)
  System.Diagnostics.Process.Start( URL);
}

程序運行效果如圖2。

三.小結

怎麼樣,一個簡單的RSS新聞閱讀器就按前面所說輕松完成了,容易吧。雖然它還有很多不足,但如果大家通過這個例子學會了抽取RSS鏈接信息的基本方法,那就足夠了!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved