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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" indent='yes'/>
<xsl:template match="RANDONNEE">
<xsl:element name="RANDO">
<xsl:text>
</xsl:text>
<xsl:call-template name="boucleplus">
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="boucleplus">
<xsl:param name="debut" select="1" />
<xsl:param name="fin" select="count(//ETAPE)" />
<xsl:param name="cumul" select="0" />
<xsl:if test="$cumul >0">
<xsl:text>Nv Cumul : </xsl:text>
<xsl:value-of select="$cumul"></xsl:value-of>
</xsl:if>
<xsl:text>
i = </xsl:text>
<xsl:value-of select="$debut" /> <xsl:text> / </xsl:text> <xsl:value-of select="$fin" />
<xsl:variable name="prec" select="number($debut)-1"></xsl:variable>
<xsl:text> Prec : </xsl:text><xsl:value-of select="$prec"></xsl:value-of>
<xsl:text> Alt courant : </xsl:text>
<xsl:value-of select="substring(//ETAPE[$debut]/ALTITUDE, 1,4)"> </xsl:value-of>
<xsl:text> Alt prec : </xsl:text>
<xsl:value-of select="substring(//ETAPE[$prec]/ALTITUDE, 1,4)"> </xsl:value-of>
<xsl:text> Cumul prec : </xsl:text> <xsl:value-of select="$cumul"> </xsl:value-of>
<xsl:if test="($debut)=($fin)">
<xsl:call-template name="lastetape">
<xsl:with-param name="cumuldef" select="$cumul" /> </xsl:call-template>
</xsl:if>
<xsl:if test="$debut < $fin">
<xsl:variable name="debutprec" select="($debut) - 1"></xsl:variable>
<xsl:choose>
<xsl:when test="$debut > 1">
<xsl:if test="substring(//ETAPE[$debut]/ALTITUDE, 1,4) > substring(//ETAPE[$debutprec]/ALTITUDE, 1,4)">
<xsl:variable name="delta" select="number(substring(//ETAPE[$debut]/ALTITUDE, 1,4)) -number( substring(//ETAPE[$debutprec]/ALTITUDE, 1,4))"></xsl:variable>
<xsl:call-template name="cumuler">
<xsl:with-param name="cumul" select="($cumul) + ($delta)" />
</xsl:call-template>
<xsl:call-template name="boucleplus">
<xsl:with-param name="debut" select="($debut)+1" />
<xsl:with-param name="fin" select="$fin" />
<xsl:with-param name="cumul" select="($cumul) + ($delta)" />
</xsl:call-template>
</xsl:if>
<xsl:if test="substring(//ETAPE[$debut]/ALTITUDE, 1,4) <= substring(//ETAPE[$debutprec]/ALTITUDE, 1,4)">
<xsl:variable name="delta" select="0"></xsl:variable>
<xsl:call-template name="cumuler">
<xsl:with-param name="cumul" select="($cumul) + ($delta)" />
</xsl:call-template>
<xsl:call-template name="boucleplus">
<xsl:with-param name="debut" select="($debut)+1" />
<xsl:with-param name="fin" select="$fin" />
<xsl:with-param name="cumul" select="($cumul) + ($delta)" />
</xsl:call-template>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="boucleplus">
<xsl:with-param name="debut" select="($debut)+1" />
<xsl:with-param name="fin" select="$fin" />
<xsl:with-param name="cumul" select="($cumul)" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template name="cumuler">
<xsl:param name="cumul" select="0" />
<xsl:text> Cumul inter : </xsl:text>
<xsl:value-of select="$cumul"> </xsl:value-of>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template name="lastetape">
<xsl:param name="cumuldef" select="0" />
<xsl:text> Cumul Final : </xsl:text>
<xsl:value-of select="$cumuldef">
</xsl:value-of>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet> |
Partager