2
我有如下的XML节点。linq到XML:每个组的唯一属性值计数
...
<ParentNode>
<Node id="2343" name="some name" mode="Some Mode">
//Some child nodes here
</Node>
<Node id="2344" name="some other name" mode="Some Mode">
//Some child nodes here
</Node>
...
</ParentNode>
<ParentNode>
<Node id="2343" name="some name" mode="Some Other Mode">
//Some child nodes here
</Node>
<Node id="2344" name="some other name" mode="Some Mode">
//Some child nodes here
</Node>
</ParentNode>
....
我需要的是
id name distinct-mode-count
--------------------------------------------
2343 some name 2
2344 some other name 1
我在下面试图让这一点。
XElement myXML = XElement.Load(filePath);
IEnumberable<XElement> parentNodes = myXML.Descendants("ParentNode");
var nodeAttributes = parentNodes.Select(le => le.Descendants("Node")
.GroupBy(x => new {
id = x.Attribute("id").Value,
name = x.Attribute("name").Value
}).Select(g => new {
id = g.Key.id,
name = g.Key.name,
distinct_mode_count = // This is where I am stuck
}));
我不确定如何在上述查询中获得distinct_mode_count
。与节点内
编辑
我需要不同的属性值计数属性"mode"
,不管他们是在ParentNode
。
感谢您的及时答复@乔恩飞碟双向。我需要所有父节点中的不同计数。相同的节点/父节点无关紧要。 –
@DevrajGadhavi:你不明白你的意思,也不清楚你的问题。请编辑你的问题来澄清它。 –
@DevrajGadhavi:我已经稍微编辑了我的答案,并将其写入了一个简短但完整的程序,它提供了您期望的结果。 –