2014-05-25 7 views
0

갖고있는 XML 파일에서 모든 태그를 가져 오는 데 문제가 있습니다. 내 XML 파일에 설명이 포함 된 옵션 태그가 있습니다.XML 파일에서 모든 태그를 가져올 수 없습니다.

<selection id="1"> 
    <desc>You see a cat stuck up in a tree, do you</desc> 
    <option> 
     <desc goto_id="2">Help the cat</desc> 
     <desc goto_id="3">Leave the cat stuck in the tree</desc> 
    </option> 
</selection> 

나는 설명 및 선택의 ID를 얻기 위해 관리하지만, 한 나는 단지 내가 루프 그것을 통해 처음 도착 객체에 배열을 만들려고 할 때.

.Select 영역에 문제가 있습니다. XML 파일에서 첫 번째 설명 만 선택하는 이유는 무엇입니까?

답변

0

당신이 첫 번째 설명을보고있는 이유 때문에 당신의 LINQ 쿼리의이 부분이다 :

Options = selection.Elements("option") 
        .Select(option => new { 
         Desc = option.Element("desc").Value 
        }).ToArray() 
코드는 selection의 컬렉션에서 "옵션"라는 이름의 모든 요소를 ​​얻을 말하는

하고, 그런 다음 "option"이라는 요소 컬렉션에서 단일 요소를 선택하십시오. 선별은 selection.Element ("옵션"`에서 반환 된 요소의 컬렉션을 수행, 위의 코드에서

var selectionQueryNew = from selection in xml.Root.Descendants("selection") 
         select new 
         { 
          Desc = selection.Element("desc").Value, 
          Id = selection.Attribute("id").Value, 
          Options = selection.Element("option").Elements("desc") 
             .Select(option => new 
             { 
              Desc = option.Value 
             }).ToArray() 
         }; 

: 당신이 원하는 것은 "옵션"에서 "내림차순"요소의 컬렉션을 얻을 수있다) .Elements ("desc") : 배열의 모든 설명을 캡처합니다.

+0

감사합니다. 그게 문제를 해결 :) –

관련 문제