2010-04-27 6 views
1

Flickr에서 XML의 두 번째 < 링크 요소로 돌아가려고합니다.LINQ to XML 두 번째 요소 반환

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

그리고이 실패

이 항상 첫 번째 요소를 반환?

ImageUrl = item.Elements(ns + "link")[1].Attribute("href").Value, 

답변

1

두 번째 코드에서 .Skip(1).First().Attribute....을 시도하십시오.

0

documentation에 따르면 Element는 첫 번째로 일치하는 하위를 반환합니다. 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; 
} 
1

당신이 열거에 지정된 위치에있는 요소를 가져 ElementAt를 사용할 수 있습니다

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