作为对我的原始帖子Group/merge childs of same nodes in xml/xslt的补充,我遇到了使该结构针对不同节点(层次结构中较高的节点)重复多次的问题,例如,
<Collection>
<Questionnaire Name="Preferences" VersionID="3QW">
<Subject ID="2355">
<EventData Name="First Part">
<FormData Name="Past">
<GroupData ID="xxx" Key="4" Temp="yyy">
<ItemData ID="zzz" Value="3"/>
</GroupData>
<GroupData ID="xxx" Key="4" Temp="yyy">
<ItemData ID="qqq" Value="4"/>
</GroupData>
...
</FormData>
<FormData Name="Present">
<GroupData ID="yyy" Key="9" Temp="yyy">
<ItemData ID="www" Value="32"/>
</GroupData>
...
</FormData>
</EventData>
<EventData Name="SecondPart">
...
</EventData>
</Subject>
<Subject ID="9812">
...
</Subject>
</Questionnaire>
</Collection>
在尝试了我收到的建议的变化和其他一些事情之后,我被困住了。我认为它与多个级别有关(并且 GroupData 分布在它将成为子节点的上层/祖父节点上),然后它可能不再具有唯一的 ID。那么如何将每个 GroupData 节点的子节点放入一个 GroupData 节点(在 ID 上匹配,有时在 Key 上匹配,因为后者并不总是存在)?注意:相同的GroupData节点(具有相应的属性)必须在每个FormData节点中合并为一个GroupData节点。