Bonjour,

je suis novice dans le XSL , j'ai réaliser un code XSL qui me transforme des donnée xml ( 2000 personne avec leurs noms et prenoms ect ... )
la template que j'ai realiser permet d'afficher les donnée dans un tableau html , mon probleme reste dans la pagination puisque j'ai beaucoup de personnes a afficher
donc je veux savoir comment je peux faire la pagination sure ma page
vois le code du XSL qui m'affiche parfaitement le tableau html :
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
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="no" encoding="ISO-8859-1"/>
		<xsl:template match="/">
			<xsl:apply-templates select="annuaire"/>
		</xsl:template>
<xsl:template match="annuaire">
	<html><head><title>Annuaire</title>
	</head><body><h1>Annuaire</h1>
	<xsl:value-of select="count(personne)"/> 
	personnes dans l'annuaire.	
	<table border="1"><tr bgcolor="#C0C0C0">
	<th>ID</th>	<th>Nom</th>
	<th>Specialite</th>
	<th>Adresse</th></tr>
	<xsl:apply-templates select="personne"/>
	</table>
	</body>	
	</html>
</xsl:template>
j'ai trouvé quelques code de pagination seulement je sais pas comment integrer le mien voici le lien
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
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
<!-- Définition du nom du template -->
<xsl:template name="boucle">
 
    <!-- Les paramètres -->
    <xsl:param name="pageToShow"/><!-- Page à afficher -->
    <xsl:param name="currentPage"/><!-- Page en cours -->
    <xsl:param name="max"/><!-- Nombre total de pages -->
    <xsl:param name="windowSize"/><!-- Nombre de pages à afficher avant / après -->
    <xsl:param name="displayLeftDots"/><!-- Est-ce que les '...' ont déjà été affichés à gauche ou pas -->
    <xsl:param name="displayRightDots"/><!-- Est-ce que les '...' ont déjà été affichés à droite ou pas -->
 
    <!-- On test si on dois afficher le numéro de la page ou pas -->
    <!-- Et on stock le résultat (true / false) dans notre variable -->
    <xsl:variable name="displayCondition">
        <xsl:value-of select="$pageToShow &lt; $windowSize or $pageToShow &gt; $currentPage - $windowSize and $pageToShow &lt; $currentPage+$windowSize or $pageToShow &gt; $max - ($windowSize - 1)"/>
    </xsl:variable>
 
    <!-- Si on doit afficher le numéro de la page -->
    <xsl:if test="$displayCondition='true'">
        <xsl:choose>
 
            <!-- Si la page à afficher est la page en cours, on peux lui mettre un style different .. -->
            <xsl:when test="$pageToShow = $currentPage">
                <a href="javascript:void(0)" onclick="moveTo({$pageToShow});return false;" class="selected">
                    <span><xsl:value-of select="$pageToShow"/></span>
                </a>
            </xsl:when>
 
            <!-- Sinon on l'affiche simplement -->
            <xsl:otherwise>
                <a href="javascript:void(0)" onclick="moveTo({$pageToShow});return false;">
                    <span><xsl:value-of select="$pageToShow"/></span>
                </a>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:if>
 
    <!-- On créé une variable qui va nous dire si il faut afficher les points à gauche ou pas -->
    <xsl:variable name="leftDotsOn">
 
        <!-- Si nous n'avons pas affiché le numéro de la page -->
        <xsl:if test="$displayCondition='false'">
 
            <!-- Si la page à afficher est avant la page en cours, alors on dit d'afficher les points à gauche -->
            <xsl:if test="$pageToShow &lt; $currentPage">
                <xsl:value-of select="not($displayLeftDots='false')"/>
            </xsl:if>
 
            <!-- Si la page à afficher n'est pas avant la page en cours, on dit de ne pas afficher les points à gauche -->
            <xsl:if test="not($pageToShow &lt; $currentPage)">false</xsl:if>
        </xsl:if>
 
        <!-- Si on a affiché le numéro de la page, on n'affiche pas les points à gauche -->
        <xsl:if test="$displayCondition='true'">false</xsl:if>
    </xsl:variable>
 
    <!-- On créé une variable qui va nous dire si il faut afficher les points à droite ou pas -->
    <xsl:variable name="rightDotsOn">
 
        <!-- Si nous n'avons pas affiché le numéro de la page -->
        <xsl:if test="$displayCondition='false'">
 
            <!-- Si la page à afficher est après la page en cours, alors on dit d'afficher les points à droite -->
            <xsl:if test="$pageToShow &gt; $currentPage">
                <xsl:value-of select="not($displayRightDots='false')"/>
            </xsl:if>
 
            <!-- Si la page à afficher n'est pas après la page en cours, on dit de ne pas afficher les points à droite -->
            <xsl:if test="not($pageToShow &gt; $currentPage)">false</xsl:if>
        </xsl:if>
 
        <!-- Si on a affiché le numéro de la page, on n'affiche pas les points à droite -->
        <xsl:if test="$displayCondition='true'">false</xsl:if>
    </xsl:variable>
 
    <!-- Si on doit afficher les points, à gauche ou à droite -->
    <xsl:if test="$leftDotsOn='true' or $rightDotsOn='true'">
        <a href="javascript:void(0)"><span>...</span></a>
    </xsl:if>
 
    <!-- Si la page à afficher est plus petite que le  nombre total de pages -->
    <xsl:if test="number($pageToShow) &lt; number($max)">
 
        <!-- On appel à nouveau le template, en incrémentant la valeur de $pageToShow -->
        <!-- Pour afficher la page suivante -->
        <xsl:call-template name="boucle">
            <xsl:with-param name="pageToShow" select="$pageToShow + 1"/>
            <xsl:with-param name="max" select="$max"/>
            <xsl:with-param name="currentPage" select="$currentPage"/>
            <xsl:with-param name="windowSize" select="$windowSize"/>
 
            <!-- Cette fois on lui passe en valeur le résultat de $leftDotsOn et $rightDotsOn -->
            <!-- Si ils sont à true, on a déjà affiché les points, et on ne les veux plus -->
            <xsl:with-param name="displayLeftDots" select="$displayLeftDots='true' or $leftDotsOn='true'"/>
            <xsl:with-param name="displayRightDots" select="$displayRightDots='true' or $rightDotsOn='true'"/>
        </xsl:call-template>
    </xsl:if>
 
</xsl:template>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<xsl:call-template name="boucle">
    <xsl:with-param name="pageToShow">1</xsl:with-param>
    <xsl:with-param name="currentPage" select="$pageNum"/>
    <xsl:with-param name="max" select="$pageCount"/>
    <xsl:with-param name="windowSize" select="$windowSize"/>
    <xsl:with-param name="displayLeftDots" select="false"/>
    <xsl:with-param name="displayRightDots" select="false"/>
</xsl:call-template>