2012-11-22 111 views
0

在C#中尋找一個簡單的RSS閱讀器用於剃刀語法,我遇到了這個網站:http://our.umbraco.org/forum/developers/razor/27409-Consume-an-RSS-feed-in-RazorRazor中的硬編碼url

正如代碼中的註釋所表明的那樣,URL可能是硬編碼的。我很好奇它是如何硬編碼到一個RSS提要的,看起來並不明顯。例如,如果我試圖替換「http://tdsb.on.ca/RSS/MediaRoom.xml」的網址,它就會變成空白。

@using System.Xml; 

@{ 
//Get the XML from remote URL 
XmlDocument xml = new XmlDocument(); 

**//URL currently hardcoded - but you could use a macro param to pass in URL** 
xml.Load("http://blog.orcare.com/rss"); 

//Select the nodes we want to loop through 
XmlNodeList nodes = xml.SelectNodes("//item"); 

//Traverse the entire XML nodes. 
foreach (XmlNode node in nodes) 
{ 
    //Get the value from the <title> node 
    var title = node.SelectSingleNode("title").InnerText; 

    //Get the value from the <description> node 
    var description = node.SelectSingleNode("description").InnerText; 

    <h1>@title</h1> 
    @Html.Raw(description) 

} 
} 

回答

0

我相信作者的意思是說URL本身是硬編碼的;即不從數據庫,配置文件,用戶界面或類似物動態加載,而是寫入代碼本身。在一個真實的解決方案中,如果您不僅希望從靜態提要或靜態提要列表中獲取RSS,通常會讓它更具動態性。但是,如果您在使用代碼進行生產時不需要更改url,那麼它就不是硬編碼的問題。

沒有嘗試自己的代碼,從第一印象它應該與任何url返回一個實際的RSS源。只要Feed中的項目節點位於XML中,並且只要項目節點具有標題和描述即可。

但代碼不是很穩固。如果這些元素中的任何一個從XML中丟失,它可能很容易中斷。

0

這是硬編碼的地方去獲取RSS源。由於格式不匹配,因此http://tdsb.on.ca/RSS/MediaRoom.xml變爲空白。如果你打開這兩個xmls並比較,你會發現tdsb缺少descriptionìtem下。

+0

但我發現,即使擺脫了引用描述的標籤,而是試圖獲取鏈接,它仍然給我一個空白頁面。至少有一些方法可以查看編譯器結果嗎? –