У меня есть XML вход и я хочу перевести это xml для нашей ERP-системы в файл xslt. То, что я хочу сделать, это группировать по коду поставщика. Поэтому я хочу 1 iorh для каждого кода поставщика со всеми iorr для этого iorh.
XML Ввод:
<NewDataSet>
<OrderLine>
<SUPPLIER_CODE>01</SUPPLIER_CODE>
<ITEM_CODE>xxx</ITEM_CODE>
<ITEM_DESCRIPTION>xxx</ITEM_DESCRIPTION>
<ORDER_QTY>2.00</ORDER_QTY>
</OrderLine>
<OrderLine>
<SUPPLIER_CODE>01</SUPPLIER_CODE>
<ITEM_CODE>yyy</ITEM_CODE>
<ITEM_DESCRIPTION>yyy</ITEM_DESCRIPTION>
<ORDER_QTY>3.00</ORDER_QTY>
</OrderLine>
<OrderLine>
<SUPPLIER_CODE>02</SUPPLIER_CODE>
<ITEM_CODE>zzz</ITEM_CODE>
<ITEM_DESCRIPTION>zzz</ITEM_DESCRIPTION>
<ORDER_QTY>1.00</ORDER_QTY>
</OrderLine>
<OrderLine>
<SUPPLIER_CODE>02</SUPPLIER_CODE>
<ITEM_CODE>uuu</ITEM_CODE>
<ITEM_DESCRIPTION>uuuu</ITEM_DESCRIPTION>
<ORDER_QTY>2.00</ORDER_QTY>
</OrderLine>
<OrderLine>
<SUPPLIER_CODE>03</SUPPLIER_CODE>
<ITEM_CODE>vvv</ITEM_CODE>
<ITEM_DESCRIPTION>vvv</ITEM_DESCRIPTION>
<ORDER_QTY>2.00</ORDER_QTY>
</OrderLine>
XSLT:
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<DataSet>
<xsl:for-each select="NewDataSet/OrderLine">
<xsl:sort select="SUPPLIER_CODE"/>
<iorh>
<iorh.cred_num>
<xsl:value-of select="SUPPLIER_CODE"/>
</iorh.cred_num>
<iorr>
<iorr.arti_code>
<xsl:value-of select="ITEM_CODE"/>
</iorr.arti_code>
<iorr.iorr_oms_1>
<xsl:value-of select="ITEM_CODE"/>
</iorr.iorr_oms_1>
<iorr.iorr_oms_2>
<xsl:value-of select="ITEM_DESCRIPTION"/>
</iorr.iorr_oms_2>
<iorr.iorr_order_aantal>
<xsl:value-of select="ORDER_QTY"/>
</iorr.iorr_order_aantal>
</iorr>
</iorh>
</xsl:for-each>
</DataSet>
</xsl:template>
</xsl:stylesheet>
XML Вывод, который я хочу:
<DataSet>
<iorh> //1x for every SUPPLIER_CODE
<iorh.cred_num>
01
</iorh.cred_num>
</iorh>
<iorr>
<iorr.arti_code>
xxx
</iorr.arti_code>
<iorr.iorr_oms_1>
xxx
</iorr.iorr_oms_1>
<iorr.iorr_oms_2>
xxx
</iorr.iorr_oms_2>
<iorr.iorr_order_aantal>
2.00
</iorr.iorr_order_aantal>
</iorr>
<iorr>
<iorr.arti_code>
yyy
</iorr.arti_code>
<iorr.iorr_oms_1>
yyy
</iorr.iorr_oms_1>
<iorr.iorr_oms_2>
yyy
</iorr.iorr_oms_2>
<iorr.iorr_order_aantal>
3.00
</iorr.iorr_order_aantal>
</iorr>
<iorh> //1x for every SUPPLIER_CODE
<iorh.cred_num>
02
</iorh.cred_num>
</iorh>
<iorr>
<iorr.arti_code>
vvv
</iorr.arti_code>
<iorr.iorr_oms_1>
vvv
</iorr.iorr_oms_1>
<iorr.iorr_oms_2>
vvv
</iorr.iorr_oms_2>
<iorr.iorr_order_aantal>
2.00
</iorr.iorr_order_aantal>
</iorr>
.....................................
</DataSet>
Теперь я получаю для каждого нового кода поставщика / строки заказа новый iorh. Может кто-нибудь сказать / объяснить мне, как это сделать / возможно ли это сделать? Надеюсь, ты понимаешь.