2014-12-08 2 views
0

나는 다음과 같은 XML이 : 나는 XML (C#을)에 LINQ를 사용하고 싶으면 무엇Linq에 XML에 Where 절

<root> 
    <property> 
     <propertydetails> 
      <siteid>4</siteid> 
     </propertydetails> 
     <gallery> 
       <image> 
        <imagesrc></imagesrc> 
       </image> 
      </gallery> 
     </property> 
</root> 

궁극적으로 특정 siteid에 대한 모든 갤러리의 이미지를 얻을됩니다. 그래서, 그것은 속성 값 요소/siteid가 특정 값과 같은 전체 속성 요소를 반환하는 것이 가장 좋을 것이라고 추측합니다.

나는 자손 내에서 요소를 검색하려고하는데 다음 요소가 직접 요소가 아니기 때문에 다음 코드가 작동하지 않는다고 생각합니다. siteid는 propertydetails 아래에 있지만 전체 속성 태그에 액세스하여 갤러리 이미지를 가져오고 싶습니다.

 var properties = from property in root.Descendants("property") 
      where (int)property.Element("siteid") == id 
      select new PropertyModel 
      { 
        SiteId = Convert.ToInt32(property.Element("siteid").Value), 
        Images = new List<string>(from gallery in property.Descendants("gallery") 
               select gallery.Element("imagesrc").Value) 
          }; 
     } 

답변

0

위의 답변은 확실하지 않지만 확실한 해결책입니다. xsd 변환기를 사용하여 xml을 xsd 파일로 변환 한 다음 xsd 파일을 xml을로드하고 후속 처리를 수행하는 데 사용할 수있는 C# sharp 클래스로 변환합니다.