oui, elle est même décrite dans la FAQ du forum : http://xml.developpez.com/faq/?page=3#xslt_regroup... bah! c'est en cherchant qu'on progresse.
oui, elle est même décrite dans la FAQ du forum : http://xml.developpez.com/faq/?page=3#xslt_regroup... bah! c'est en cherchant qu'on progresse.
en voici la mise en oeuvre sur ce cas précis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?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="regrouper" match="client" use="@secteur"/> <xsl:template match="/"> <clients> <xsl:apply-templates select="clients/client[generate-id(.)=generate-id(key('regrouper', @secteur)[1])]"> <xsl:sort select="@secteur"/> </xsl:apply-templates> </clients> </xsl:template> <xsl:template match="client"> <xsl:param name="sect" select="@secteur"/> <client> <xsl:value-of select="count(//nom[parent::client[@secteur=$sect]])"/> - <xsl:value-of select="@secteur"/> : <xsl:apply-templates select="//nom[parent::client[@secteur=$sect]]"/> </client> </xsl:template> <xsl:template match="nom"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager