XSL : <xsl:if>

XSL : <xsl:if> - XML/XSL - Programmation

Marsh Posté le 25-05-2004 à 10:58:35    

Bonjour,
 
Je suis actuellement sur l'ecriture d'une feuille XSL que je souhaite appliquer à mon arbre, pourriez vous m'aider à la finaliser ?
 
Je souhaite poser une condition lors de l'ecriture d'une balise, mais je n'y arrive pas, ci-joint ma feuille :
 

Code :
  1. <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'
  2. xmlns:rs='urn:schemas-microsoft-com:rowset'
  3. xmlns:z='#RowsetSchema'
  4. exclude-result-prefixes='rs z'>
  5. <xsl:output method='xml' encoding='UTF-8' omit-xml-declaration='yes'/>
  6. <xsl:template match='/xml/rs:data'>
  7. <root indice_bd="BD">
  8. <xsl:for-each select='z:row'>
  9. <el_bib id_bib='{@TATA}' id_el_bib='el_bib:{@TUTU}'>
  10. <!-- 1. Affichage des Type Var -->
  11. <xsl:for-each select='type_var'>
  12.  <type_var id_var='el_bib:{@FREZ}' ma_var='{@BOB}'/>
  13. </xsl:for-each>
  14. </el_bib>
  15. </xsl:for-each>
  16. </root>
  17. </xsl:template>
  18. </xsl:stylesheet>


 
J'aimerais que lorsque la variable de type ma_var='{@BOB}' n'existe pas, (donc == "" ), il ne m'affiche que
<type_var id_var='el_bib:{@FREZ}'/> au lieu de :
<type_var id_var='el_bib:{@FREZ}' ma_var='{@BOB}'/>
 
Il me semble avoir besoin de xsl:if, mais je n'arrive à l'utiliser.
 
Merci de votre aide !

Reply

Marsh Posté le 25-05-2004 à 10:58:35   

Reply

Marsh Posté le 26-05-2004 à 09:13:37    

<xsl:choose> :??:
Je suis pas encore au point là dessus ...

Reply

Marsh Posté le 26-05-2004 à 10:01:22    

Code :
  1. <xsl:choose>
  2.    <xsl:when test="ma_var==''">
  3.         <type_var id_var='el_bib:{@FREZ}'/>
  4.    </xsl:when>
  5.    <xsl:otherwise>
  6.         <type_var id_var='el_bib:{@FREZ}' ma_var='{@BOB}'/>
  7.    </xsl:otherwise>
  8. </xsl:choose>


un truc de ce genre :/
mais c'est qu'une piste, j'y mettrai pas ma main à couper ;)

Reply

Marsh Posté le 26-05-2004 à 10:10:58    

ça me parait pas mal moi :)

Reply

Marsh Posté le 26-05-2004 à 10:18:27    

bah dans son code, il déclare pas sa variable ma_var, donc je me dis qu'en fait il veut peut-être tester la valeur de @BOB [:proy]
 
et puis je ne connais pas la notation avec les {} :D

Reply

Marsh Posté le 26-05-2004 à 10:29:23    

Citation :

J'aimerais que lorsque la variable de type ma_var='{@BOB}' n'existe pas, (donc == "" ), il ne m'affiche que
<type_var id_var='el_bib:{@FREZ}'/> au lieu de :
<type_var id_var='el_bib:{@FREZ}' ma_var='{@BOB}'/>


 
wishy > J'ai beau lire je comprends pas très bien ce que tu veux...
 
Si il faut insérer le tag type_var avec un ou deux attributs en fonction d'une condition il faut effectivement utiliser un <xsl:if>, voir <xsl:choose>, ensuite regarde <xsl:element> et <xsl:attribut> pour générer ton tag proprement...  
 
dropsy > les {} c'est une notation brève qui remplace simplement <xsl:value-of>
 
A+

Reply

Marsh Posté le 26-05-2004 à 11:02:07    

avander a écrit :

[quote]dropsy > les {} c'est une notation brève qui remplace simplement <xsl:value-of>


:jap: merci
c'est la première fois que je la vois, jamais vu :/


Message édité par dropsy le 26-05-2004 à 11:02:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed