2010-04-27 54 views
1

我試圖回到第二< link>元素中來自Flickr的XML。的LINQ to XML返回第二個元素

這總是返回的第一個元素:

ImageUrl = item.Element(ns + "link").Attribute("href").Value, 

而失敗?

​​

回答

1

嘗試.Skip(1).First().Attribute....第二片段。

0

根據documentation元素返回第一個匹配的子元素 - 元素返回所有匹配的子元素。要獲得第二項,只需跳過第一項並採取下一項。

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; 
} 
1

您可以使用ElementAt在指定的位置來得到元素可枚舉:

imageUrl = (string)item.Elements(ns + "link").ElementAt(1).Attribute("href");