Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3043 connectés 

 


Dernière réponse
Sujet : [XSLT] comment faire if a<b avec ce language de merde ?
prettysmile BifaceMcLeOD> merci pour l'info, mais c un peu compliqué je sais pas si je retiendrais

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
prettysmile BifaceMcLeOD> merci pour l'info, mais c un peu compliqué je sais pas si je retiendrais
Gonzoide J'ai du faire la meme chose : mettre la couleur de fond d'une cellule en fonction de la severite d'une erreur se trouvant a l'interieur ... ca donne ca :
 
 <TD WIDTH="80">
  <xsl:attribute name = "bgcolor">
      <xsl:choose>
        <xsl:when test="Sever[. $le$ 3]">#00ff00</xsl:when>
        <xsl:when test="Sever[. $le$ 6]">#ff8000</xsl:when>
        <xsl:otherwise>#ff0000</xsl:otherwise>
      </xsl:choose>
     </xsl:attribute>
 
  <xsl:value-of select="Sever"/>
 </TD>
 
C'est l'equivalent d'un switch en C/C++. Note que pour les comparaisons, j'utilise $le$, $ge$ ou $eq$
nabab DUCH >  :lol:  
 
En XML il y a quoi 5 entités prédéfinis ... c pas dur à apprendre par coeur ... M'enfin ... Surtout qu'il est evident que pour des problemes de parsage < ne peut pas etre à l'interieur d'un attribut sauf bien sur dans le cas evoque par youdontcare qui est à l'interieur d'un XPATH car alors le parseur s'attend à ce charactere ] avant celui ci < ou celui ci > ... Mais c de toute maniere plus rigoureux d'utiliser < ou > ...
youdontcare [off topic ...]
 
duch > dis moi, ta boîte n'est elle pas apparue dans un numéro de shift ? (shift.jp.org)
youdontcare y'a plein de tutorials sur http://zvon.org/
 
xml, xsl, xpath.
youdontcare tu peux aussi utiliser les templates pour faire des tests, et utiliser '<' sans avoir à taper '<'.
 
je vais recopier un exemple qui vient de je ne sais plus où ...
 
tu as une liste de bouquins que tu veux afficher dans une table, et tu veux une couleur différente pour la colonne du prix si le prix du livre est supérieur à 30.
 
sachant qu'un livre est décrit dans cet exemple par  
 
<book>
 <title>Le titre du livre</title>
 <price>son prix</price>
</book>
 
(bouquins sont rangés dans une bibliothèque genre
<library>
  <book ...
  <book ...
</library> )
 
dans ton xsl tu as :
 
<xsl:template match="/">
 <table>
   <xsl:apply-templates />
 </table>
</xsl:template>
 
<!-- template par défaut pour le tag "book" -->
<xsl:template match="book">
 <tr>
   <td><xsl:value-of select="title" /></td>
   <td><xsl:value-of select="price" /></td>
 </tr>
</xsl:template>
 
<!-- template qui override la template "book" si le prix du livre est supérieur à 30 -->
<xsl:template match="book[price > 30]">
 <tr>
   <td><xsl:value-of select="title" /></td>
   <td bgcolor="ff0000"><xsl:value-of select="price" /></td>
 </tr>
</xsl:template>
 
on peut faire une autre template genre "book[price > 50]" qui override les deux précédentes, et ainsi de suite ...
 
voilà. c'est très puissant et très sympa tout ça, un peu cryptique au début, mais on s'y fait vite !
BifaceMcLeOD prettysmile> Il faut utiliser une entité supplémentaire pour pouvoir afficher une entité. Exemple : &#38;lt; pour pourvoir afficher &lt;.
 
La vie est simple... :D

 

[edit]--Message édité par BifaceMcLeOD--[/edit]

duch ah ok, merci :D
prettysmile pour l'adresse essaie en passant par là (c la même chose)
 
 http://metalab.unc.edu/xml/books/bible/updates/14.html  
pour les signes: désolée ils ont été interprétés: je sais pas comment empecher cela, alors je balance des espaces)
= equal to  
!= not equal to  
< less-than (really & l t ; )  
> greater-than  
<= less-than or equal to (really  & l t ; = )  
>= greater-than or equal to  
Caution
JPA Fallait enlever la ) à la fin de l'URL !!!
 
Dans cette page on trouve :
Caution
 
The < sign is illegal in attribute values. Consequently, it must be replaced by < even when used as the less-than operator
duch 404 FILE NOT FOUND
 pour l'url :sweat:
 
sinon pour les signes, je les connais merci :D, mais ça ne marche pas
prettysmile j'ai trouvé ca:
(ici: http://www.ibiblio.org/xml/books/b [...] s/14.html)
 
Booleans are also produced as the result of expressions involving these operators:
 
= equal to  
!= not equal to  
< less-than (really < )  
> greater-than  
<= less-than or equal to (really <=)  
>= greater-than or equal to  
 
j'ai pas testé, si ca marche, fais moi le savoir :)

 

[edit]--Message édité par prettysmile--[/edit]

duch Excusez-moi pour ce titre mais je suis remonté là.
 
ça fait 3 heures que je me tape tous les tutos dispos, dans toutes les langues possibles et imaginables, et y'a rien concernant les tests. Tous les exemples données font des tests sur des égalités ou sur des count d'éléments, j'm'en fous des = j'veux faire des vrais tests.
 
voici ce que j'ai fait :  
 
un test qui marche :  
 
<xsl:if test="@val='0'">
 <xsl:attribute name="bgcolor">red</xsl:attribute>
</xsl:if>
 
et un test qui ne marche pas :  
 
<xsl:if test="@val=<'0'">
 <xsl:attribute name="bgcolor">red</xsl:attribute>
</xsl:if>
 
evidemment le problème viens du <, mais par quoi faut-il le rmeplcer, mystère...
 
si au passage quelq'un conaissait un tuto digne de ce nom ça m'arrangerait :D

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)