[XSLT] preceding-sibling dans un sous ensemble
Bonjour,
Je rencontre un problème avec une transformation XSLT.
Je dispose d'un fichier xml de ce type :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<ROWSET>
<ROW num="1">
<category>categorie 1</BW_BU_CODE>
<product>produit 1</BW_BU_LAB>
</ROW>
<ROW num="2">
<category>categorie 1</BW_BU_CODE>
<product>produit 2</BW_BU_LAB>
</ROW>
<ROW num="3">
<category>categorie 2</BW_BU_CODE>
<product>produit 1</BW_BU_LAB>
</ROW>
<ROW num="4">
<category>categorie 2</BW_BU_CODE>
<product>produit 1</BW_BU_LAB>
</ROW>
<ROW num="5">
<category>categorie 2</BW_BU_CODE>
<product>produit 3</BW_BU_LAB>
</ROW>
</ROWSET> |
Et je souhaiterais afficher un tableau html de la forme suivante :
categorie 1---------produit1
---------produit2
categorie 2---------produit1
----------produit3
=> Le but étant de ne pas repéter la catégorie ou le produit quand celui-ci est le même que la ligne précédente.
Pour celà, j'ai donc utilisé preceding-sibling avec une condition dans le genre :
Code:
1 2 3 4 5 6
|
<xsl:choose>
<xsl:when test="not(PRODUCT=preceding-sibling::ROW/PRODUCT)">
<xsl:value-of select="PRODUCT"/>
</xsl:when>
</xsl:choose> |
-> Je n'affiche pas le produit si celui-ci apparait déjà dans une ligne avant.
Or j'obtiens un tableau html comme celà :
categorie 1---------produit1
---------produit2
categorie 2---------
----------produit3
=> Comme preceding-sibling recherche dans tous les noeuds précédents, il trouve product 1 et par conséquant ne l'affiche pas.
Ma question est donc : Est-il possible de filtrer le preceding-sibling afin de ne tester l'existence du produit uniquement dans la catégorie en cours ?
Merci d'avance pour votre aide