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] alterner de style entre deux apply-template


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [xsl] alterner de style entre deux apply-template
    Bonjour,

    je voudrais juste alterner de couleur entre deux lignes

    j'ai :

    quelques part
    <table>
    <xsl:apply-templates select="host" />
    </table>
    puis

    <xsl:template match="host">
    <tr>
    <td>
    <xsl:value-of select="ip" />
    </td>
    <td>
    <xsl:value-of select="hostname" />
    </td>
    </tr>
    </xsl:template>

    et je voudrais que la couleur de chaque tr soit alterner entre gris et blanc
    j'imagine qu'il faut mettre quelques chose dans la balise tr
    mais je ne sais pas quoi tester

    Merci
    laouache

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    moi je te conseille d'utiliser les css pour ca,voit dans le forum html css

    amoins que ton pb ne soit d'alterner :

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ben oui justement mon prb est d'alterner

    parce que pour mettre une couleur en fond je sais

    mais je voudrais alterner
    1 fois sur 2 blanc
    1 fois sur 2 gris

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    pour 2 blanches 2 noires
    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
     
    <table> 
    <xsl:call-templates name="alterner"> 
    <xsl:with-param name="noeud" select="//host"/>
    <xsl:with-param couleur select="0"/>
    </xsl:call-templates> 
    </table> 
     
    ......
    <xsl:template name="alterner"> 
    <xsl:param name="noeud" />
    <xsl:param couleur select="0"/>
    <xsl:variable name="atraiter" select="$noeud[1]"/>
    <xsl:choose>
    <xsl:otherwise>
    <xsl:when test="$couleur<2">
    <tr class="blanc"> 
    <td> 
    <xsl:value-of select="ip" /> 
    </td> 
    <td> 
    <xsl:value-of select="hostname" /> 
    </td> 
    </tr> 
    </xsl:when>
    <xsl:otherwise>
    <tr class="gris"> 
    <td> 
    <xsl:value-of select="ip" /> 
    </td> 
    <td> 
    <xsl:value-of select="hostname" /> 
    </td> 
    </tr> 
    <xsl:otherwise>
     
    </xsl:choose>
    <xsl:if test="$noeud[position()>1]"/">
    <xsl:when test="$couleur=3">
     <xsl:call-templates name="alterner"> 
    <xsl:with-param name="noeud" select="$noeud[position()>1]"/>
    <xsl:with-param couleur select="0"/>
    </xsl:call-templates> 
    </xsl:when>
    <xsl:otherwise>
     <xsl:call-templates name="alterner"> 
    <xsl:with-param name="noeud" select="$noeud[position()>1]"/>
    <xsl:with-param couleur select="$couleur+1"/>
    </xsl:call-templates> 
    <xsl:otherwise>
    </xsl:if>
     
    </xsl:choose>
    </xsl:template>
    attention peut etre des erreurs de syntaxe non teste

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Août 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    dsl mais ca ne marche pas il ya des erreurs

    Le signe d'égalité est absent entre l'attribut et la valeur de l'attribut. Erreur de traitement de la ressource file:///C:/Arnault Doc/_Réseau Norprotex_/progs java/xsl/test.xsl. Ligne 27, Position 27

    <xsl:with-param couleur select="0"/>
    --------------------------^
    mais il n'y aurait pas plus simple comme code

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    si en realite il te suffit de tester la position dans l'apply-template


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <when test="(position()-(position mod 2))div 2">
    alors blanc
    <otherwise>
    alors gris
    ......
    j'avais oublie cette solution
    par contre je ne corrige jamais la syntaxe je veux bien aide mais pas faire le programme

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Août 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ok no problem
    cette solution me plait

    et elle est tres logique

    merci

  8. #8
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    tiens pdt que j'y pense une variante pour par exemple faire une action 3 fois "blanc" puis 4 "gris" pas essaye mais ca devrait marche

    <when test="(position() mod 7)<4">
    alors "blanc"
    <otherwise>
    alors "gris"

Discussions similaires

  1. interaction entre deux appli python
    Par awalter1 dans le forum Général Python
    Réponses: 1
    Dernier message: 24/10/2012, 12h01
  2. communication entre deux applis
    Par MINOU1312 dans le forum Développement Web avec .NET
    Réponses: 5
    Dernier message: 21/12/2010, 15h37
  3. Réponses: 5
    Dernier message: 29/03/2007, 22h26
  4. [debutant]Comment faire un espace entre 2 apply-templates?
    Par Jayceblaster dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 25/04/2006, 19h47
  5. [WebLogic]Partager un bean entre deux applis web
    Par fatboyslim75 dans le forum Weblogic
    Réponses: 2
    Dernier message: 12/12/2005, 19h22

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