我有一个XElement
对象,其结构与下面的对象相同。
如何从CalcConceptId
属性不同的TestResults
根节点中选择所有DataPointValue
子节点,并将它们存储为数组/列表中的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>
答案 0 :(得分:1)
我认为您希望所有按DataPointValue分组的CalcConceptId节点,但有点不清楚“DataPointValue的不同之处”意味着什么。
无论如何,这就是我想你想要的......
var calcConceptIdGroupedByDataPointValue =
doc.Descendants("CalcConceptId")
.GroupBy(calcConceptId => calcConceptId.Attribute("DataPointValue"));
答案 1 :(得分:0)
我不是百分百肯定......但如果我得到你所要求的,你在寻找吗?
//assuming the XElement is called Data:
var result =
data.Elements().GroupBy(x => int.Parse(x.Attribute("DataPointValue")))
.Select(g => g.First());