XSLT 1.0 Groupement assez complexe !

Fermé
killer75 - 6 mars 2008 à 15:25
 killer75 - 6 mars 2008 à 17:59
Bonjour,
voilà mon problème:
j'ai le fichier xml suivant:

<xml>
<data>
<row nom="BERNARD" prenom="Sylvie" societe="Peugeot" />
<row nom="DUPOND" prenom="Maurice" societe="PEUGEOT" />
<row nom="FEDERER" prenom="Sylvain" societe="néptune" />
<row nom="RERNARD" prenom="Marc" societe="NEPTUNE" />
</data>
</xml>

et je souhaiterai avoir ce résultat(en html):

NEPTUNE
FEDERER Sylvain
RERNARD Marc
PEUGEOT
BERNARD Sylvie
DUPOND Maurice

et je dois avouais que je ne vois pas du tout comment faire sachant qu'il faut prendre en compte la casse, j'ai esseyer pleins de truc avec translate key la méthode muenchienne mais rien à faire j'en peux plus je crack...

Donc je remercie d'avance tous ceux qui m'aideront à trouver une solution !!!

1 réponse

Pb résolu dans un autre forum je poste donc la soluce:

<xsl:for-each select="/xml/data/row">
<xsl:sort select="translate(@societe,'abcdefghijklmnopqrstuvwxyzàâéèêîôùû','ABCDEFGHIJKLMNOPQRSTUVWXYZAAEEEIOUU')"/>
<xsl:if test="not(preceding-sibling::row[translate(@societe,'abcdefghijklmnopqrstuvwxyzàâéèêîôùû','ABCDEFGHIJKLMNOPQRSTUVWXYZAAEEEIOUU')=translate(current()/@societe,'abcdefghijklmnopqrstuvwxyzàâéèêîôùû','ABCDEFGHIJKLMNOPQRSTUVWXYZAAEEEIOUU')])">
<xsl:variable name="cursoc" select="translate(@societe,'abcdefghijklmnopqrstuvwxyzàâéèêîôùû','ABCDEFGHIJKLMNOPQRSTUVWXYZAAEEEIOUU')"/>
<p><xsl:value-of select="$cursoc"/></p>
<ul>
<xsl:for-each select="/xml/data/row[translate(@societe,'abcdefghijklmnopqrstuvwxyzàâéèêîôùû','ABCDEFGHIJKLMNOPQRSTUVWXYZAAEEEIOUU')=$cursoc]">
<li><xsl:value-of select="concat(@nom,' ',@prenom)"/></li>
</xsl:for-each>
</ul>
</xsl:if>
</xsl:for-each>
0