我编写了一个代码片段,使用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};
答案 0 :(得分:3)
如果Element("{http://www.w3.org/2005/Atom}title")
或Element("{http://www.w3.org/2005/Atom}link")
不存在,那么您将获得空引用异常。
URL
行有两次失败的机会,因为您正在查找“href”属性而不检查它是否确实存在。
您应该为此进行一些检查,并确定如果这些元素或属性中的任何一个不存在,您想要做什么。