groupe au sein d'un groupe
Bonjour,
Je n'arrive pas à trouver la solution, pour effectuer un regroupement d'un noeud sans qu'il soit cité à chaque tri au sein d'un groupe.:? La réponse est certainement basique mais c'est ma premiére manipe dans ce langage :oops:
Mon fichier xml
Code:
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
| <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="transform-3_par_massif.xsl" type="text/xsl" ?>
<MASSIF>
<Voies>
<Id>0</Id>
<Cotation>6b</Cotation>
<Massif>Mont Blanc</Massif>
<NomDeVoie>La directe</NomDeVoie>
<Situation>test ..........</Situation>
</Voies>
<Voies>
<Id>1</Id>
<Cotation>7a</Cotation>
<Massif>Mont Blanc</Massif>
<NomDeVoie>La diagonale</NomDeVoie>
<Situation>plus bas...</Situation>
</Voies>
<Voies>
<Id>2</Id>
<Cotation>7a+</Cotation>
<Massif>Mont Blanc</Massif>
<NomDeVoie>Mister speed</NomDeVoie>
<Situation>Face Est</Situation>
</Voies>
<Voies>
<Id>3</Id>
<Cotation>6c</Cotation>
<Massif>Mont Blanc</Massif>
<NomDeVoie>La voie normale</NomDeVoie>
<Situation>Face Ouest</Situation>
</Voies>
<Voies>
<Id>4</Id>
<Cotation>6b</Cotation>
<Massif>Mont Blanc</Massif>
<NomDeVoie>La Lachenale</NomDeVoie>
<Situation>Face Sud</Situation>
</Voies>
</MASSIF> |
Code:
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
| <?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" />
<!-- recherche des cotations par Massif pour chaque cotation -->
<xsl:key name="byMassif" match="Voies" use="Massif" />
<xsl:template match="MASSIF">
<ul>
<!-- genere un id pour chaque valeur de cotation et mise en forme -->
<xsl:for-each select="bloc[generate-id() = generate-id(key('byMassif', Massif)[1])]" >
<xsl:sort select="Massif " />
<div style="background-color:#b0c4de;">
Massif : <xsl:value-of select="Massif" /> <hr/>
</div>
<div>
<xsl:for-each select="key('byMassif', Massif)" >
<xsl:sort select="Cotation"/>
<div style="position:relative; top:-10px;left:50px;"><br/>
<xsl:value-of select="Cotation" />
</div>
<div style="position:relative; top:-10px;left:50px;">
<ul>
<li> <xsl:value-of select="NomDeVoie" /> </li>
<li> description: <xsl:value-of select="Situation" /></li><br/>
</ul>
</div>
</xsl:for-each>
</div>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet> |
J'obtiens le résulat suivant :
Mont Blanc
6b La directe
6b La Lachenale
6c La voie normale
7a La diagonale
7a+ Mister speed
Voici le resultat souhaité:
Mont Blanc
6b La directe
6b La Lachenale
6c La voie normale
7a La diagonale
7a+ Mister speed
Merci pour vos pistes de reflexions