2013-07-15 3 views
1

다음과 같은 구조를 가진 XElement 개체가 있습니다. DataPointValue 속성이 다른 TestResults 루트 노드에서 모든 자식 노드를 선택하고 배열/목록에 XElement으로 저장하려면 어떻게해야합니까? 나는 각각의 자식을 또 하나의 XElement으로 저장할 수 있기를 원한다. 그래서 나는 그것들을 통해 반복하여 각각 SeriesAsOfDate과 데이터 노드를 가져올 수있다.자식 노드를 가져 와서 부모 노드에서 그룹화하는 방법

<TestResults RSSD="123456"> 
    <CalcConceptId Id="110" DataPointValue="10"> 
    <SeriesAsOfDate Value="2013-07-10T00:00:00"> 
     <Data AsOfDate="7/10/2013" ExpectedValue="1" /> 
     <Data AsOfDate="7/3/2013" ExpectedValue="14" /> 
     <Data AsOfDate="6/26/2013" ExpectedValue="55" /> 
    </SeriesAsOfDate> 
    </CalcConceptId> 
    <CalcConceptId Id="110" DataPointValue="20"> 
    <SeriesAsOfDate Value="2013-07-10T00:00:00"> 
     <Data AsOfDate="7/10/2013" ExpectedValue="4" /> 
     <Data AsOfDate="7/3/2013" ExpectedValue="34" /> 
     <Data AsOfDate="6/26/2013" ExpectedValue="1" /> 
    </SeriesAsOfDate> 
    </CalcConceptId> 
</TestResults> 

답변

1

난 당신이 DataPointValue별로 그룹화 CalcConceptId의 모든 노드를 원한다고 생각하지만, 좀 불분명 무엇을 의미 "를 DataPointValue가 다른 경우". 어쨌든 여기

... 난 당신이 원하는 생각입니다

var calcConceptIdGroupedByDataPointValue = 
     doc.Descendants("CalcConceptId") 
      .GroupBy(calcConceptId => calcConceptId.Attribute("DataPointValue")); 
0

저는 100 % 확실하지 않습니다 ...하지만 당신이 묻는 것을 얻을 수 있다면, 이것을 찾고 있습니까?

//assuming the XElement is called Data: 
var result = 
    data.Elements().GroupBy(x => int.Parse(x.Attribute("DataPointValue"))) 
     .Select(g => g.First()); 
관련 문제