通过LINQ to XML解析Atom提要

时间:2010-07-07 09:51:43

标签: c# linq-to-xml atom-feed

我编写了一个代码片段,使用LINQ to XML查询从Atom提要(例如SO提要)中提取基本信息。

我想知道是否存在此代码可能失败或有更优雅方式的情况。

感谢您的支持。

var url = @"http://stackoverflow.com/feeds";
XDocument rss = XDocument.Load(url);

var q = from i in rss.Root.Elements("{http://www.w3.org/2005/Atom}entry")
select new {
        Title = i.Element("{http://www.w3.org/2005/Atom}title").Value, 
        URL = i.Element("{http://www.w3.org/2005/Atom}link").Attribute("href").Value};

1 个答案:

答案 0 :(得分:3)

如果Element("{http://www.w3.org/2005/Atom}title")Element("{http://www.w3.org/2005/Atom}link")不存在,那么您将获得空引用异常。

URL行有两次失败的机会,因为您正在查找“href”属性而不检查它是否确实存在。

您应该为此进行一些检查,并确定如果这些元素或属性中的任何一个不存在,您想要做什么。