1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="commande" match="ROW" use="concat(NO_COMMANDE,TYPE_OPERATION)"/>
<xsl:template match="/ROWSET">
<res>
<xsl:for-each select="ROW">
<xsl:choose>
<xsl:when test="not(preceding-sibling::ROW) or NO_COMMANDE!=preceding-sibling::ROW[1]/NO_COMMANDE or TYPE_OPERATION!=preceding-sibling::ROW[1]/TYPE_OPERATION">
<xsl:copy>
<ENTETE>
<NO_COMMANDE>
<xsl:value-of select="NO_COMMANDE"></xsl:value-of>
</NO_COMMANDE>
<TYPE_OPERATION>
<xsl:value-of select="TYPE_OPERATION"></xsl:value-of>
</TYPE_OPERATION>
</ENTETE>
<xsl:variable name="curKey" select="concat(NO_COMMANDE,TYPE_OPERATION)"/>
<xsl:for-each select="key('commande',$curKey)">
<LIGNE>
<CODE_ARTICLE>
<xsl:value-of select="CODE_ARTICLE"></xsl:value-of>
</CODE_ARTICLE>
<QTE_COMMANDE>
<xsl:value-of select="QTE_COMMANDE"></xsl:value-of>
</QTE_COMMANDE>
</LIGNE>
</xsl:for-each>
</xsl:copy>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates select="key('commande',ROW[concat(NO_COMMANDE,TYPE_OPERATION)!=preceding-sibling::ROW[1]])">
</xsl:apply-templates>
</res>
</xsl:template>
</xsl:stylesheet> |
Partager