我有一个具有以下结构的XML文件:
<XML>
<Series key="A">
<Observation>
<Dimension value="2018-11-01" />
<Value value="123" />
</Observation>
<Observation>
<Dimension value="2018-11-02" />
<Value value="456" />
</Observation>
<Observation>
<Dimension value="2018-12-01" />
<Value value="789" />
</Observation>
<Observation>
<Dimension value="2018-12-02" />
<Value value="222" />
</Observation>
</Series>
<Series key="B">
<Observation>
<Dimension value="2018-11-01" />
<Value value="123" />
</Observation>
<Observation>
<Dimension value="2018-11-02" />
<Value value="456" />
</Observation>
<Observation>
<Dimension value="2018-12-01" />
<Value value="789" />
</Observation>
<Observation>
<Dimension value="2018-12-02" />
<Value value="222" />
</Observation>
</Series>
</XML>
我想将每个Series
和每个value
属性的Dimension
属性的XML分组。
我已经知道如何按月分组:
$doc.SelectNodes("//Series/Observation", $ns) | Group-Object { $_.Dimension.value.Substring(0,7) }
但这仅导致两个组2018-11
和2018-12
。但是,我需要4个组,每个Series
2个组。如何实现?
答案 0 :(得分:2)
将ParentNode
属性作为分组的第一个属性:
$doc.SelectNodes('//Series/Observation') | Group-Object { $_.ParentNode.key },{ $_.Dimension.value.Substring(0,7) } -NoElement
,您将得到类似以下结果:
Count Name
----- ----
2 A, 2018-11
2 A, 2018-12
2 B, 2018-11
2 B, 2018-12