From:
Date: 12/09/2002 - 09:08
ok, g aussi traite la non repetition des doublons (j'anticipe la question mais comment éviter de répeter les régions > lacune de XSLT version 1 pour le regroupement.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="E:\Katartixus\Untitled3.xsl"?>
<a>
<departement numDep="01" nomDep="Ain" numReg="22" nomReg="Rhône-Alpes"/>
<departement numDep="02" nomDep="Aisne" numReg="19" nomReg="Picardie"/>
<departement numDep="03" nomDep="Allier" numReg="03" nomReg="Auvergne"/>
<departement numDep="06" nomDep="Alpes-Maritimes" numReg="06" nomReg="PACA"/>
<departement numDep="83" nomDep="Var" numReg="06" nomReg="PACA"/>
</a>
le xsl, que dire dessus, si vous ne désirez avoir les régions se répétées alors enlever l'élément <xsl:key/>
et faite
select="departement" mode="RegionBreak"
à la place de
select="departement[count(.|key('RegionKey',@numReg)[1])=1]" mode="RegionBreak" (méthode de regroupement la plus efficace pour XSLT 1 appelée méthode de Mench (car Steve Mench d'Oracle "l'inventeur")
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:key name="RegionKey" match="*" use="@numReg"/>
<xsl:template match="/*">
<div>
<xsl:apply-templates select="departement [count(.|key('RegionKey',@numReg)[1])=1]" mode="RegionBreak">
<xsl:sort select="@nomReg"/>
</xsl:apply-templates></div>
</xsl:template>
<xsl:template match="departement" mode="RegionBreak">
<table>
<tr>
<td><b>
<xsl:value-of select="@nomReg"/></b>
</td>
</tr>
<xsl:apply-templates select="/*/departement[@numReg=current()/@numReg]" mode="DepartementList">
<xsl:sort select="@nomDep"/>
</xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="departement" mode="DepartementList">
<tr>
<td>
<xsl:value-of select="@nomDep"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Gregoor
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|