2008-09-25 83 views
1

這可能很奇怪,你有沒有遇到過你想按時間順序閱讀的博客?那個博客可能很老,有幾百個帖子。當我將此供稿添加到我的供稿閱讀器時,比如說googlereader,最新的供稿來自頂端,當我向下滾動時,會出現較舊的帖子。如果您想從頭開始閱讀,這可能會令人沮喪。有沒有這樣的讀者?或者,我很樂意將它作爲一個寵物項目,(最好在c#中),我應該怎麼做呢?另外,有沒有.NET庫可以用來處理RSS提要?我之前沒有做過任何RSS提要編程。逆轉RSS源

編輯我想知道這是否有任何技術限制。這是我遇到的一個有趣的問題,我認爲可以通過編程來解決。

回答

2

如果您決定推出自己的C#應用​​程序來執行此操作,那麼在當前版本的.NET Framework中它非常簡單。

查找System.ServiceModel.Syndication命名空間。那裏有與RSS和Atom提要相關的類。我最近編寫了一些代碼,使用這些類從數據庫生成一個feed,並將地理編碼添加到feed項目中。我遇到了同樣的問題,我需要將訂閱源中項目的順序顛倒過來,因爲我的數據庫查詢以相反的順序返回它們,我希望我的用戶能夠看到它們。

我所做的只是在我要將提要寫入磁盤之前,直接在自己的List<SyndicationItem>數據結構中保存供應商的SyndicationItem對象的列表。然後我會做這樣的事情:

private SyndicationFeed m_feed; 
private List<SyndicationItem> m_items; 

...snip... 

m_items.Reverse(); 
m_feed.Items = m_items; 
2

在Google閱讀器中,當您閱讀Feed時,有一個「Feed settings ...」菜單,其中包含「按最新排序」,「按最早排序」選項。

文件夾有下的菜單相同的選項「文件夾設置...」

無需編程。

+0

排序方式最早只顯示過去30天的項目。沒有太大的幫助 – ashwnacharya 2008-09-25 21:54:36

+0

你會受到飼料實際踢出的限制。並非所有Feed都顯示所有歷史帖子。事實上,這將是一個可怕的想法。 – 2008-09-25 21:56:10

2

我想你可能會遇到這個問題。許多RSS提要只保留最近10篇左右的帖子,所以自從博客開始以後,就無法從提要中提供舊數據。

+0

如果我等了很長時間,Google Reader會將所有帖子都發給我。我唯一的問題是它的提取順序。 – ashwnacharya 2008-09-25 21:59:58

+0

如果RSS提要沒有提供,Google閱讀器將無法提取所有帖子。雖然這個標準以前只是一個RSS提要中的10個條目,但我不知道是否有人再遵循這個條款。 – y0mbo 2008-10-20 15:06:22

0

這應該是任何語言相當容易......所有你需要做的是閱讀提要XML轉換成一個DOM結構(幾乎所有languauges包括C#有一個DOMDocument類)

然後,您應該能夠簡單地通過以相反的順序項目節點環......

見:http://msdn.microsoft.com/en-us/library/ms756177(VS.85).aspx

至於對方表示,這取決於RSS源,你可能只得到物品數量是有限的。

1

在谷歌閱讀器中,您可以讓它顯示文件夾(feed)中的項目,從最新到最舊或從最舊到最新。爲此,選擇供稿,選擇「供稿設置」下拉菜單,然後選擇「按最早排序」。我不確定Google Reader會有多遠,但可能一開始就開始監控Feed。