我想了解如何使用我已經編寫的代碼推導出解決方案。XSLT Group/merge childs(使用密鑰)
爲了簡化,我將首先解釋我想要做什麼以及我到目前爲止所做的。
假設我在XSLT中包含少數具有相同標題屬性的節點的XML變量。我使用@Dimitre Novatchev solution我設法將它們組合成一個節點。
所以,如果我有:
<t>
<GroupData ID="xxx" Key="4" Temp="yyy">
<ItemData ID="zzz" Value="3"/>
</GroupData>
<GroupData ID="yyy" Key="4" Temp="yyy">
<ItemData ID="abc" Value="3"/>
</GroupData>
<GroupData ID="zzz" Temp="yyy">
<ItemData ID="pqr" Value="1982"/>
</GroupData>
<GroupData ID="xxx" Key="4" Temp="yyy">
<ItemData ID="www" Value="1982"/>
</GroupData>
<GroupData ID="yyy" Key="4" Temp="yyy">
<ItemData ID="def" Value="1982"/>
</GroupData>
<GroupData ID="zzz" Temp="yyy">
<ItemData ID="tuv" Value="1982"/>
</GroupData>
</t>
使用後,以下關鍵
<xsl:key name="kGDByIdKey" match="GroupData" use="concat(@ID, '+', @Key)"/>
我會得到:
<t>
<GroupData ID="xxx" Key="4" Temp="yyy">
<ItemData ID="zzz" Value="3"/>
<ItemData ID="www" Value="1982"/>
</GroupData>
<GroupData ID="yyy" Key="4" Temp="yyy">
<ItemData ID="abc" Value="3"/>
<ItemData ID="def" Value="1982"/>
</GroupData>
<GroupData ID="zzz" Temp="yyy">
<ItemData ID="pqr" Value="1982"/>
<ItemData ID="tuv" Value="1982"/>
</GroupData>
</t>
現在我想改變這一個有點,我希望能夠通過我的決定合併/合併標題。考慮到這一點,在上面的例子中,我想定義xxx和zzz在同一個組中,儘管它們使用的是不同的標題(極端情況 - 在我的工作空間中,我將它們定義爲相同的 - 我可能會有更多情況這個)。如果你能告訴我通常應該做的方向是什麼(我想我需要修改我的密鑰或使用替代方法 - 生成id或其他方法),我將不勝感激。
我發現自己只實施需要大量不必要努力的不良解決方案。