用C 製作新聞閱讀器

2021-06-15 20:13:49 字數 2241 閱讀 7162

一。弄清結構再動手要想輕鬆的抽取rss資訊,自然先要了解它的結構,所謂「知己知彼,百戰不殆」嘛。

1。rss的結構。抽取的原理

知道了這些後,要程式設計就不困難啦。我們只需提取並顯示出channelitem下的各條資訊就可以了。現在來看看具體的實現方法吧。

二.做個程式讀新聞

對rss有一定了解後,我們開始編寫程式。先還是需要乙個最簡單的介面。新建乙個win form 工程,在form上放置乙個label,乙個文字框txturl用來輸入rss鏈結(就是各**rss鏈結中包含的位址),乙個按鈕bnread用來執行讀取新聞, 乙個treeview樹形控制項treerss顯示讀出的新聞項。

1。定義裝載結構根據上面分析的rss結構,我們首先來建立乙個rss類,用它來裝載rss鏈結中channelitem的各條資訊。**如下:

public class rss

public struct item

}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)}

return childlnode;}

xmlnode rssnode = foundchildnode(xmldoc,"rss");

xmlnode channelnode = foundchildnode(rssnode,"channel");

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

rss.channel channel=new rss.channel();

channel.items=new hashtable();

case "item":

}} 如果發現是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

三.小結

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

用Visual C 製作新聞閱讀器

一 弄清結構再動手 要想輕鬆的抽取rss資訊,自然先要了解它的結構,所謂 知己知彼,百戰不殆 嘛。1 rss的結構 為了能夠方便地對這樣的xml文件進行處理,在本文裡,我們使用c 作為開發的語言。分析整個rss鏈結後,我們知道rss大致的結構入圖1。2 抽取的原理 channel節點又包含多個ite...

五個最佳RSS新聞閱讀器

文章出自 google reader 基於web 自從google月2006年底推出了google reader之後,其令人印象深刻的速度和可用性就吸引了大批使用者,使用google reader最明顯的好處就是,無論使用者在那台電腦上使用,看到的feed都是相同的介面,對於專案的已讀 未讀 標籤都...

護照閱讀器

護照閱讀器 首先從一代 二代護照閱讀器到最新嵌入式護照閱讀器,本身就是乙個識別技術 識別功能 識別準確率都逐步提高的過程。接下來看看桌面式跟嵌入式的應用行業,到底這兩款護照閱讀器有什麼區別?桌面式護照閱讀器 酒店管理系統 機場安全檢查管理系統 訪客管理系統 網咖實名制登記管理系統 汽車尾氣檢測管理系...