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 :

[XSLT] comparaison a des valeurs de references


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [XSLT] comparaison a des valeurs de references
    bonjour,

    je debute avec XSLT et la je bloque sur un probleme

    dans mon fichier xml je stocke des temperatures (une de reference et celles des jours passés)

    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
     
    <test>
    	<ref>
    		<temp id='1' value='25' />
    		<temp id='2' value='28' />
    		<temp id='3' value='22' />
    	</ref>
    	<mesure nb=1>
    		<temp id='1' value='22' />
    		<temp id='2' value='23' />
    		<temp id='3' value='19' />
    	</mesure>
    	<mesure nb=2>
    		<temp id='1' value='27' />
    		<temp id='2' value='29' />
    		<temp id='3' value='22' />
    	</mesure>
    	<mesure nb=3>
    		<temp id='1' value='25' />
    		<temp id='2' value='25' />
    		<temp id='3' value='21' />
    	</mesure>
    	<mesure nb=4>
    		<temp id='1' value='24' />
    		<temp id='2' value='25' />
    		<temp id='3' value='23' />
    	</mesure>
    </test>
    ensuite je veux generer un tableau (XML>XSLT>HTML) avec toutes les valeurs et afficher ces valeurs en rouge quand elles depassent la reference.
    Pour generer le tableau avec les valeurs pas de probleme.
    Mais pour afficher en rouge quand ca depasse...la je vois pas du tout comment je peux faire.

    Merci d'avance a ceux qui prendrons la peine de m'aider

    RNP

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    un truc de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xsl:choose>
       <xsl:when test="@value > /test/ref/temp[@id = current()/@id]/@value">
          <span class="greater_than_ref"><xsl:value-of select="@value"></span>
          <!-- ou directement : <span style="color : red"> -->
       </xsl:when>
       <xsl:otherwise>
          <xsl:value-of select="@value">
       </xsl:otherwise>
    </xsl:choose>

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci de cette reponse,
    cependant la comparaison se fait toujours avec la derniere reference (ou l'id=3 dans l'exemple). Or je cherche a comparer la reference id=1 avec les temperature id=1 et ainsi de suite.

    edit:autant pour moi, je suis juste pas doué pour les copier/coller ca fonctionne tres bien en fait. Merci beaucoup de cette précieuse aide

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    il me semble que ce qu'il t'a envoyé permet ceci. mais tu dois le mettre au bon endroit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <xsl:template match="/">
    <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="test">
    <xsl: apply-templates select="mesure"/>
    </xsl:template>
     
     
    <xsl:template match="mesure">
    TU DOIS LE METTRE ICI
    </xsl:template>

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Tout marche finalement tres bien. merci

    maintenant je voudrai assouplir un peu le test: au lieu d'utiliser la valeur de reference je voudrai mettre des palliers cad
    pallier 1 : x < valeur de ref
    pallier 2 : valeur de ref < x < valeur de ref+10%
    pallier 3 : valeur de ref + 10% < x

    dois je passer par des variables??

    Merci

    Edit : c'est bon ca fonctionne aussi
    je passe par une variable ou je stocke la valeur + 10% puis je test avec mes trois palliers.

    Merci

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

Discussions similaires

  1. [XSLT/XPATH] récupération de valeur avec des espaces
    Par peyo_le_fou dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 30/07/2007, 09h01
  2. [XSLT] Sélectionner des valeurs distinctes
    Par vavanounet dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 14/05/2007, 12h43
  3. [XSLT] Tri personalisé selon des valeurs
    Par Clad3 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/07/2006, 14h46
  4. [XSLT] Normalisation des valeurs pour les URL
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 10/01/2006, 12h33
  5. [xslt] filtrer des valeurs numériques
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/09/2005, 12h01

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