Интересная задача на xslt - требуется объеденить несколько узлов, содержащих shop_item с @id и избавиться от дубликатов узлов по совпадению @id
Есть три узла от текущего узла:
Требуется объединить все товары, т.е.:
И убрать все дубли, чтобы получился результат:
<comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
</comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
</comp_items>
<modifications>
<shop_item id="19374">
<comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
</comp_items>
</shop_item>
<shop_item id="19375">
<comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
</comp_items>
</shop_item>
<shop_item id="19375">
<comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
</comp_items>
</shop_item>
</modifications>
<shop_item id="19374">
<comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
</comp_items>
</shop_item>
<shop_item id="19375">
<comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
</comp_items>
</shop_item>
<shop_item id="19375">
<comp_items>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
</comp_items>
</shop_item>
</modifications>
<moduls_in_group>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
</moduls_in_group>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
</moduls_in_group>
Требуется объединить все товары, т.е.:
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
И убрать все дубли, чтобы получился результат:
<shop_item id="19368">
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
...
</shop_item>
<shop_item id="19370">
...
</shop_item>
<shop_item id="19372">
...
</shop_item>
<shop_item id="19376">
...
</shop_item>
<shop_item id="19404">
...
</shop_item>
Авторизация