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

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

編輯:關於C語言

二.做個程序讀新聞

對RSS有一定了解後,我們開始編寫程序。先還是需要一個最簡單的界面。新建一個Win Form 工程,在Form上放置一個Label,一個文本框txtURL用來輸入RSS鏈接(就是各網站RSS鏈接中包含的地址),一個按鈕bnRead用來執行讀取新聞, 一個TreeVIEw樹形控件treeRSS顯示讀出的新聞項。

1、定義裝載結構

根據上面分析的RSS結構,我們首先來建立一個rss類,用它來裝載RSS鏈接中CHANNEL和ITEM的各條信息。代碼如下:

public class rss
{
 public struct Channel
 {
  public string Title;
  public Hashtable Items;
 }
 public struct Item
 {
  public string Title;
  public string Description;
  public string Link;
 }
}

Channel結構將存儲CHANNEL節點包含的所有子節點信息,其中Items成員字段是一個Hashtable集合,程序會將Item結構作為對象加入集合,用來存儲Channel下的所有Item節點。這裡我只讀取了有限的幾個節點,讀者可以根據實際需要擴展整個結構定義。

2、從RSS鏈接中獲取新聞信息

現在我們就可以開始編寫讀取函數,將抽取出的RSS信息放入上面設計好的結構中。

C#提供了專門的類來訪問XML, 使我們能夠輕松地讀出RSS的內容。代碼如下:

XmlTextReader Reader = new XMLTextReader(URL);
XmlValidatingReader Valid = new XMLValidatingReader(Reader);
Valid.ValidationType = ValidationType.None;
XmlDocument xmlDoc= new XMLDocument();
XMLDoc.Load(Reader);

使用XMLDocument類將txtURL中輸入的RSS鏈接加載後,首先通過FoundChildNode函數,找到Channel節點。

private XmlNode FoundChildNode(XMLNode Node,string Name)
{
 XMLNode childlNode = null;
 for (int i=0;i < Node.ChildNodes.Count;i++)
 {
  if ( Node.ChildNodes[i].Name == Name && Node.ChildNodes[i].ChildNodes.Count > 0 )
  {
   childlNode = Node.ChildNodes[i];
   return childlNode;
  }
 }
 return childlNode;
}
XmlNode rssNode = FoundChildNode(XMLDoc,"rss");
XMLNode channelNode = FoundChildNode(rssNode,"channel");

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