我試圖回到第二< link>元素中來自Flickr的XML。的LINQ to XML返回第二個元素
這總是返回的第一個元素:
ImageUrl = item.Element(ns + "link").Attribute("href").Value,
而失敗?
我試圖回到第二< link>元素中來自Flickr的XML。的LINQ to XML返回第二個元素
這總是返回的第一個元素:
ImageUrl = item.Element(ns + "link").Attribute("href").Value,
而失敗?
嘗試.Skip(1).First().Attribute....
第二片段。
根據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;
}
您可以使用ElementAt在指定的位置來得到元素可枚舉:
imageUrl = (string)item.Elements(ns + "link").ElementAt(1).Attribute("href");