我正在尝试返回第二个< link>来自Flickr的XML中的元素。
这总是返回第一个元素:
ImageUrl = item.Element(ns + "link").Attribute("href").Value,
这会失败吗?
ImageUrl = item.Elements(ns + "link")[1].Attribute("href").Value,
答案 0 :(得分:1)
您可以使用ElementAt将元素放在可枚举的指定位置:
imageUrl = (string)item.Elements(ns + "link").ElementAt(1).Attribute("href");
答案 1 :(得分:1)
在第二个代码段上尝试.Skip(1).First().Attribute....
。
答案 2 :(得分:0)
根据documentation元素返回第一个匹配的子元素 - Elements返回所有匹配的子元素。要获得第二项,只需跳过第一项,然后选择下一项。
ImageUrl = item.Elements(ns + "link").Skip(1).First().Attribute("href").Value;
如果你不能确定有两个孩子,你可以这样做:
XElement xe = item.Elements(ns + "link").Skip(1).FirstOrDefault();
if(xe != null)
{
ImageUrl = ex.Attribute("href").Value;
}