Мой XML выглядит так
<page>
<orderhistory>
<order>
<ordernr>10610000000001</ordernr>
<orderrecord>
<productcategory>Something</productcategory>
</orderrecord>
<orderrecord>
<productcategory>Something</productcategory>
</orderrecord>
<orderrecord>
<productcategory>Something</productcategory>
</orderrecord>
</order>
<order>
<ordernr>10210000000001</ordernr>
<orderrecord>
<productcategory>Something</productcategory>
</orderrecord>
</order>
<order>
<ordernr>10110000000001</ordernr>
<orderrecord>
<productcategory>Something</productcategory>
</orderrecord>
</order>
<order>
<ordernr>10310000000001</ordernr>
<orderrecord>
<productcategory>Something</productcategory>
</orderrecord>
<orderrecord>
<productcategory>Forms</productcategory>
</orderrecord>
</order>
</orderhistory>
Я хочу показать все категории товаров, которые принадлежат одному заказу. поэтому, если в одном заказе больше записей заказов, я хочу показать все категории без дубликатов
следующий номер заказа.
Но это выглядело так
03-06-2009 10610000000001 something something
03-06-2009 10210000000001 something
03-06-2009 10110000000001 something
03-05-2009 10310000000001 Forms something
Я создал XSL для группировки категорий товаров из записей заказов, чтобы дубликаты были удалены. Казалось, работает нормально, но проблема в том, что я хочу, чтобы он был сгруппирован по порядку.
<xsl:key name="orderrecord-by-productcategory" match="orderrecord" use="productcategory" />
<xsl:template match="/page/orderhistory/order">
<xsl:for-each select="orderrecord[generate-id(.) =generate-id(key('artists-by-country', productcategory)[1])]" >
<xsl:value-of select="productcategory" />
</xsl:for-each>
</xsl:template>
Теперь мой вывод выглядит так
03-06-2009 10610000000001 something
03-06-2009 10210000000001
03-06-2009 10110000000001
03-05-2009 10310000000001 Forms
но я хочу, чтобы это выглядело так.
03-06-2009 10610000000001 something
03-06-2009 10210000000001 something
03-06-2009 10110000000001 something
03-05-2009 10310000000001 Forms something
Как я могу это сделать?