🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fr.comp.text.xml
3 messages
3 total messages Started by lionel Thu, 23 Nov 2000 00:00
comment tester un attribut?
#10172
Author: lionel
Date: Thu, 23 Nov 2000 00:00
22 lines
1175 bytes
salut,

j'ai un probl�me que je ne sais r�soudre: comment faire pour  tester un
attribut avec la formule xsl:if dans un document xsl?

exemple:
j'ai un xml qui comporte les �l�ments suivants:

<urba>
     <enreg sel="0" etat="initial">
          <cle>1</cle>
          <nom>titi</nom>
            ......
    </enreg>
    .....
</urba>

j'aimerais tester maintenant avec <xsl:if ...> si l'attribut sel est �gale �
0 ou 1 et faire des choses en cons�quences ...

comment faut il faire pour que ceci marche?
merci
Re: comment tester un attribut?
#10174
Author: Echoes
Date: Thu, 23 Nov 2000 00:00
40 lines
1657 bytes
lionel wrote:
> 
> salut,
> 
> j'ai un probl�me que je ne sais r�soudre: comment faire pour  tester un
> attribut avec la formule xsl:if dans un document xsl?
> 
> exemple:
> j'ai un xml qui comporte les �l�ments suivants:
> 
> <urba>
>      <enreg sel="0" etat="initial">
>           <cle>1</cle>
>           <nom>titi</nom>
>             ......
>     </enreg>
>     .....
> </urba>
> 
> j'aimerais tester maintenant avec <xsl:if ...> si l'attribut sel est �gale �
> 0 ou 1 et faire des choses en cons�quences ...

 Un bloc xsl:if pour la valeur 1, et un autre pour la valeur 0 :
 <xsl:if test="/urba/enreg@sel = '1'">
  ...
 </xsl:if>

 Si tu es certain que sel ne prend que 2 valeurs, tu peux aussi
utilise xsl:choose :

<xsl:choose>
   <xsl:when test="/urba/enreg@sel = '1'">
         ...
   </xsl:when>
   <xsl:otherwise>  <!-- toutes les valeurs diff�rentes de 1 -->
         ...
   </xsl:otherwise>
</xsl:choose>

	Fabrice
Re: comment tester un attribut?
#10176
Author: Tom.
Date: Thu, 23 Nov 2000 00:00
19 lines
1446 bytes
In article <3A1CF19F.CA8BC766@free.fr>, "Echoes" <echoes@free.fr> wrote:

>  Un bloc xsl:if pour la valeur 1, et un autre pour la valeur 0 :
>  <xsl:if test="/urba/enreg@sel = '1'">

... test="/urba/enreg/@sel = '1'"
                    ^^^
Pensez toujours � la forme "d�velopp�e" pour �viter les erreurs :
/child::urba/child::enreg/attribute::sel

Si on remplace '1' (chaine) par 1 (nombre), ca marche aussi : on prend
la valeur (chaine) de l'attribute puis on le convertit en nombre pour
le comparer � 1.
Tou d�pend de ce qu'est sens� repr�sent� la valeur de l'attribut pour
nous humain : le nombre 1 ou la cha�ne '1',l'essentiel dans le test
�tant d'�tre le plus proche de sa logique possible pour une
lecture/compr�hension/maintenance ais�e.

Tom.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads