IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL] passer sur le tableau suivant apres X lectures


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 68
    Par défaut [XSL] passer sur le tableau suivant apres X lectures
    Bonjour à tous j'ai dans mon xml plusieurs etudiants comme ceci

    <ETUDIANT>
    <ID> 1 </ID>
    <PRENOM> José </PRENOM>
    </ETUDIANT>
    .
    .
    .
    .
    <ETUDIANT>
    <ID> 10 </ID>
    <PRENOM> tzt </PRENOM>
    </ETUDIANT>

    Je voudrais les imprimer comme le tableau ci dessous
    je voudrais ecrire les 7 premiers etudiants dans la 1er collone et ensuite passer a la deuxieme pour finir d'ecrire mes etudiants
    Je sais pas si c'est possible en tout ca je peine un peu a trouver la solution
    Merci de votre aide

    ID.........Prenom.........ID........Prenom
    1.........Jose..............8......... denis
    2.........zer................9......... zeata
    3.........zerzer...........10......... tzt
    4.........zar
    5.........zra
    6.........tzetzat
    7.........zetzat

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    Salut,

    Il suffit que tu lui dises :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <xsl:variable name="etudiant">
    <xsl:value-of select="count(ETUDIANT)"/>
    </xsl:variable>
     
    <xsl:if test="$etudiant mod 7 &lt; 0">
    instructions dans la première colonne
    </xsl:if>
    <xsl:if test="$etudiant mod 7 = 0">
    instructions dans la deuxième colonne
    </xsl:if>
    Tu vas effectuer un test pour compter le nombre de balises étudiant que tu as et une fois que tu en as 7, tu passes à la colonne suivante.

    Bon courage

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 68
    Par défaut
    Merci pour la réponse mais une fois que j'ai ecris mon 7 premiers etudiants sur la 1er collones je peux pas remonter a la 2ele collones ( une fois que le row est ecrit c'est cuit)

    Je me trompes ?

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    le row déclare ta ligne
    il suffit que tu fasse une seule ligne avec 2 colonnes ???

    tu mets tes étudiants à la ligne avec un fo:block sans pour autant passer à une nouvelle ligne

    Qu'en penses-tu ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 68
    Par défaut
    je vais essayer de suite je te tiens au courant .
    En tout cas c'est cool de ta part j'allais me tirer les cheveux

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    j'ai eu le mm pb c'est normal qu'on s'entraide !!!

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 68
    Par défaut
    c'est pas plutot la postion qu'il faut et non le count

    <xsl:variable name="position" select="position()"/>

    Apres je fais ca
    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
     
    <fo:table-row>	
    <xsl:if test="$p  &lt; 8">	
    <fo:table-cell>
    <fo:block>
    <xsl:value-of select="nom"/>
    </fo:block>
    </fo:table-cell>	
     
    <fo:table-cell padding="1pt" border-style="solid">
    <fo:block>
    *
    </fo:block>
    </fo:table-cell>	
     
    </xsl:if>
    <xsl:if test="$p &gt; 7">
    <fo:table-cell padding="1pt" border-style="solid">
    <fo:block>
    *
    </fo:block>
    </fo:table-cell>	
    <fo:table-cell padding="1pt" border-style="solid">
    <fo:block>
    <xsl:value-of select="Nom"/>
    </fo:block>
    </fo:table-cell>	
    </xsl:if>			
    </fo:table-row>

    et ca me donne ca


    On s'y approche

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    OK pour la position (je suis au travail impossible de vérifier ce que je t'écris...)

    Moi j'aurai mis ca :

    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
    <fo:table-row> 
     
    <xsl:if test="$p &lt; 8"> 
     
    <fo:table-cell>
    <fo:block>
    <xsl:value-of select="nom"/>
    </fo:block>
    </fo:table-cell> 
     
    </xsl:if>
     
    <xsl:if test="$p &gt; 7">
     
    <fo:table-cell padding="1pt" border-style="solid">
    <fo:block>
    <xsl:value-of select="Nom"/>
    </fo:block>
    </fo:table-cell> 
    </xsl:if> 
     
    </fo:table-row>
    Teste pour voir..

    P.S : fais attention à bien mettre les balises CODE quand tu mets ton code...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PPT-2010] Passer automatiquement au slide suivant après une animation
    Par wilkorcv dans le forum Powerpoint
    Réponses: 0
    Dernier message: 07/02/2013, 14h01
  2. [XSLT] xsl:if sur parm, order d'apres param
    Par splifferwolf dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/02/2008, 13h48
  3. [MySQL] Tableau n'affiche pas les données sur les pages suivantes
    Par orleans dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/12/2007, 20h17
  4. Réponses: 2
    Dernier message: 08/09/2007, 19h24
  5. [XSL]Test sur le noeud fils suivant?
    Par kobe dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 06/07/2006, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo