Bonjour,
J'aimerais de l'aide pour factoriser ce code afin de le rendre plus élégant si c'est possible :
J'ai plusieurs when en fcontion du niveau de section. Je ne sais pas si je peux améliorer ce code. Comme vous pouvez le constatez, ce qui change est ceci : /document/summary/section[@id=$IdSection]/@idCar en fonction de l'arborescence, je suis au niveau 1, 2, 3... (section section/section...) car je peux avoir 2 niveaux comme je peux en avoir 10.
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
28 <!-- Lien interne (Niveau 1) : Il est important d'identifier l'id de la section vers lequel pointe le lien --> <xsl:when test="(starts-with(@href, '#L') or starts-with(@href, $URLHTTP)) and $IdSection!='' and /document/summary/section[@id=$IdSection]/@id"> <fo:basic-link internal-destination="{generate-id(/document/summary/section[@id=$IdSection]/@id)}" color="#003366" font-weight="bold"> <xsl:choose> <xsl:when test="text()"><xsl:value-of select="text()"/></xsl:when> <xsl:otherwise><xsl:value-of select="@href"/></xsl:otherwise> </xsl:choose> </fo:basic-link> </xsl:when> <!-- Lien interne (Niveau 2) : Il est important d'identifier l'id de la section vers lequel pointe le lien --> <xsl:when test="(starts-with(@href, '#L') or starts-with(@href, $URLHTTP)) and $IdSection!='' and /document/summary/section/section[@id=$IdSection]/@id"> <fo:basic-link internal-destination="{generate-id(/document/summary/section/section[@id=$IdSection]/@id)}" color="#003366" font-weight="bold"> <xsl:choose> <xsl:when test="text()"><xsl:value-of select="text()"/></xsl:when> <xsl:otherwise><xsl:value-of select="@href"/></xsl:otherwise> </xsl:choose> </fo:basic-link> </xsl:when> <!-- Lien interne (Niveau 3) : Il est important d'identifier l'id de la section vers lequel pointe le lien --> <xsl:when test="(starts-with(@href, '#L') or starts-with(@href, $URLHTTP)) and $IdSection!='' and /document/summary/section/section/section[@id=$IdSection]/@id"> <xsl:message><xsl:value-of select="$IdSection"/></xsl:message> <fo:basic-link internal-destination="{generate-id(/document/summary/section/section/section[@id=$IdSection]/@id)}" color="#003366" font-weight="bold"> <xsl:choose> <xsl:when test="text()"><xsl:value-of select="text()"/></xsl:when> <xsl:otherwise><xsl:value-of select="@href"/></xsl:otherwise> </xsl:choose> </fo:basic-link> </xsl:when>
Donc mettre 10 when, ça fait un peu tâche.
Merci !
Partager