C rss 打造聚合器

2021-04-15 00:35:59 字數 3206 閱讀 5853

最近我一直在尋找如何在web頁面上顯示rss feed的方法,我選擇 c#和asp.net作為工具。我建立了乙個簡單的處理函式來處理從乙個url獲得的rss feed。你可以直接使用這個簡單的函式,或者改造成你想要的功能。 http://ike.126.com

這個函式使用乙個字串rssurl作為它的引數。這個字串包含了rss的url。它使用rssurl的值建立了乙個webrequest項:

system.net.webrequest myrequest

=system.net.webrequest.create(rssurl);

這個請求的響應將會被放到乙個webresponse物件裡:

system.net.webresponse myresponse

=myrequest.getresponse();

然後這個webresponse物件被用來建立乙個流來取出xml的值:

system.io.stream rssstream

=myresponse.getresponsestream();

然後可以使用乙個xmldocument物件來儲存流中的xml內容。xmldocument物件用來調入xml的內容:

system.xml.xmldocument rssdoc

=new

system.xml.xmldocument();

rssdoc.load(rssstream);

因為rss feed不只是乙個xml檔案,我們可以假設裡面包含了一些rss標準的規定。這裡,我們假設使用了rss 2.0。你可以從http://blogs.law.harvard.edu/tech/rss裡得到規範的詳細內容。

具體的來說,每個項應該在rss/channel/裡。使用xpath表達,乙個項節點列表可以如下方式建立:

system.xml.xmlnodelist rssitems

=rssdoc.selectnodes(

"rss/channel/item");

rssitems儲存了從rss裡獲得所有項節點的資訊。這樣就可取得內部所需要的資訊了。這裡,標題、鏈結和每個項的描述將會被顯示。在 rssitems中儲存的每個項,每個標記(tag)元素都可以用selectsinglenode方法提取出來。返回的值將被賦給乙個xmlnode物件。以下**獲取了乙個標題節點:

system.xml.xmlnode rssdetail;

rssdetail

=rssitems.item(i).selectsinglenode(

"title");

現在標記需要被提取出來,使用innertext完成這項工作。在呼叫selectsinglenode之後,可以用rssdetail來測試格式化的rss xml是否包含某些標記:

if (rssdetail

!=null

) else

這樣,你就完成了從乙個feed裡獲取rss內容的工作。剩下的工作就是呼叫這個方法來顯示feed的內容了。以下是乙個使用asp.net完成的完整的例子:

顯示結果如下:<%

乙個聚合器

採用類似連通域的兩遍遍曆法,聚合mark 使用方法 1 初始化聚合池 2 不停往聚合池中新增兩兩匹配關係 3 輸出聚合結果 coding utf 8 import os import glob import sys import cv2 import shutil import numpy as n...

打造VC 偽裝器

打造vc 偽裝器 楚茗前幾天,在乙個黑客站點看到vc 偽裝器這麼乙個小工具,突然感到很眼熟。對了,以前在看雪學院 www.pediy.com 看到過欺騙查殼工具的文章,趕緊去複習複習。當然了,現在我已經複習好了,這裡我就告訴大家原理和帶大家一起用vc打造乙個簡單的vc 偽裝器。首先我們簡單的認識一下...

設計 android上RSS聚合器

在android上做了個rss聚合器,雖然是個很簡單的東西,但我還是必須說還是有點設計的。1 最簡單實現 寫幾個用到的activity,在這幾個介面間跳轉,完成所有功能。缺點 1 單執行緒,ui會被網路訪問阻塞 2 實現邏輯為直線線,對錯綜複雜的邏輯跳轉回顯得很笨拙 2 c s模式實現 主服務mai...