0

在 C# 中寻找 razor 语法的简单 RSS 阅读器时,我遇到了这个网站: http: //our.umbraco.org/forum/developers/razor/27409-Consume-an-RSS-feed-in-Razor

正如它在代码中的注释中所说,它可能是 URL 是硬编码的。我很好奇它究竟是如何硬编码到一个 RSS 提要的,看代码似乎并不明显。例如,如果我尝试替换“http://tdsb.on.ca/RSS/MediaRoom.xml”的 url,它就会变成空白。

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

 } 
}
4

2 回答 2

0

我相信作者的意思是 URL 本身是硬编码的;即不是从数据库、配置文件、用户界面或类似的动态加载,而是用代码本身编写的。在实际的解决方案中,如果您不仅希望来自静态提要或静态提要列表的 RSS,您通常希望它更加动态。但是,如果您在使用代码进行生产后从不需要更改 url,那么硬编码就不是问题了。

在没有自己尝试过代码的情况下,从第一印象来看,它应该适用于任何返回实际 RSS 提要的 url。只要提要在 XML 中有项目节点,并且项目节点有标题和描述。

但是代码不是很可靠。如果 XML 中缺少这些元素中的任何一个,它就很容易中断。

于 2012-11-22T19:45:05.230 回答
0

它是硬编码去获取 rss 提要的地方。 http://tdsb.on.ca/RSS/MediaRoom.xml因为格式不匹配而变为空白。如果你打开两个 xmls 并比较,你tdsb会发现description.ìtem

于 2012-11-22T19:52:23.947 回答