[XSL] N'afficher qu'une fois une valeur + fusionner cellule
Bonjour à tous!
Voilà mon problème : j'ai un fichier XML qui ressemble à ça :
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
|
<EXTRACTION coddesex="BLSIG" codtrt="GER030E07.BLSIGSOP.0831.14.52.28.xls">
<BLOC>
<MAITRE>
<CHAMP nom="CODDEMTRT" chapitre="Informations techniques">BLSIGSOP</CHAMP>
<CHAMP nom="CODGEST" chapitre="Informations techniques">SOP</CHAMP>
<CHAMP nom="DATEX" chapitre="Informations techniques">31/08/2005</CHAMP>
<CHAMP nom="CODCAB" chapitre="Cabinet"> 989</CHAMP>
<CHAMP nom="CODSEC" chapitre="Secteur">I</CHAMP>
<CHAMP nom="CODSERV" chapitre="Service">A</CHAMP>
<CHAMP nom="CODENSIMMR" chapitre="Ensemble immobilier"></CHAMP>
<CHAMP nom="CODIMM" chapitre="Immeuble"> 5001</CHAMP>
<CHAMP nom="CODCLI" chapitre="Propriétaire"> 2921</CHAMP>
<CHAMP nom="DATARET" chapitre="Paramètres fonctionnels">31/08/2005</CHAMP>
<CHAMP nom="CODFAMELTFAC" chapitre="Paramètres fonctionnels">LL</CHAMP>
<CHAMP nom="DATDEBPER" chapitre="Bail">01/01/2000</CHAMP>
<CHAMP nom="CODTYPELTLOT" chapitre="Paramètres fonctionnels">SR</CHAMP>
<CHAMP nom="LIBENSIMMR" chapitre="Ensemble immobilier"></CHAMP>
<CHAMP nom="ADRRED" chapitre="Immeuble">GAP </CHAMP>
<CHAMP nom="LIBFAMELTFAC" chapitre="Paramètres fonctionnels">Famille d'éléments loyer </CHAMP>
<CHAMP nom="LIBTYPELTLOT" chapitre="Paramètres fonctionnels">Surface réelle </CHAMP>
</MAITRE>
</BLOC>
</EXTRACTION"> |
Je voulais que ma sortie (un fichier html) regroupe les éléments en un tableau avec comme première ligne les chapitres (triés), puis en seconde ligne, les éléments. J'ai donc créé la feuille xsl suivante :
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
|
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" media-type="text/html; encoding=UTF-8'"/>
<xsl:template match="/EXTRACTION/BLOC/MAITRE">
<table border="1">
<tr>
<xsl:for-each select="CHAMP">
<xsl:sort select="@chapitre"/>
<td>
<xsl:value-of select="@chapitre"/>
</td>
</xsl:for-each>
</tr>
<tr>
<xsl:for-each select="CHAMP">
<xsl:sort select="@chapitre"/>
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</table>
</xsl:template>
</xsl:stylesheet> |
Celle-ci fait bien ce que je veux. Cependant, par exemple, j'ai 2 fois "Ensemble immobilier" répété dans 2 cellules contigues sur la première ligne. Y'a t'il moyen de les fusionner en une seule cellule s'étendant sur 2 colonnes (c'est à dire, utiliser l'attribut colspan) par le biais de la feuille xsl?
Merci par avance!
Did