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

 


Dernière réponse
Sujet : [ XML ] - un truc tout con : le if
phoelis En fait je me basais sur les Objects Model en XML. (DOM)  
 
c est pour cela que je me posais juste la question mais merci pour ta precision Gedeon.
 
je pensais y trouver une similitude...qui sais LOL
 
Phoelis

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
phoelis En fait je me basais sur les Objects Model en XML. (DOM)  
 
c est pour cela que je me posais juste la question mais merci pour ta precision Gedeon.
 
je pensais y trouver une similitude...qui sais LOL
 
Phoelis
gedeon En gros tu veux tester si la chaine est nulle
donc  
<xsl:if test="selection[text()!='']">
...  
</xsl:if>
gedeon Non la syntaxe générale est
<xsl:if test="EXP">
</xsl:if>
 
Dans EXP tu met ce que tu veux (pattern , xpath, etc) propre au xml/xsl mais les truc du genre selection.lenght je vois pas ou tu vas les chercher
phoelis tient je me pose une question la dessus...
 
est ce que ceci fonctionnerait ?
 
<XSL:if selection.length <> "0">
 
suis vraiment pas sur, c est juste une question...donc si qq un a l a reponse. MERCI
ZuL

gedeon a écrit a écrit :

<xsl:if test="selection[text()='checked']">
 
 
Ca marchera mieux (si ton selection est sur le root car match="/" )
 
De plus je ne vois pas de tag selection dans ton code XML
à l'adresse donnée  




 
meeeeerci ca tourne nikel :)

therier Tu ne dois pas tester la valeur contenu dans un tag mais definir les actions qd tu rencontre ce tag (le XSL est une sorte de pattern matching). Tu definis l'apparence de chaque tag rencontré. A toi de dire ce que tu fais si tu rencontre un tag checked.
gedeon <xsl:if test="selection[text()='checked']">
 
 
Ca marchera mieux (si ton selection est sur le root car match="/" )
 
De plus je ne vois pas de tag selection dans ton code XML
à l'adresse donnée
ZuL

therier a écrit a écrit :

 
 
oups! mauvais copié/collé!
 
il fallait lire: <xsl:attribute name="color">red</xsl:attribute>
 
 
ouala...  




 
euh j'avoue ne pas voir plus le bout d'une solution qu'auparavent...
comment tester la valeur contenue ds un tag ?????????
if test="/selection='checked'" marche pas
sniif
 
edit : j'ai ca comme erreur :  
Le jeton attendu 'eof', trouvé '='. /selection-->=<--'checked'

 

[edtdd]--Message édité par zul--[/edtdd]

therier

therier a écrit a écrit :

     <xsl:attribute ntemplatchtame="color">red</xsl:attribute>
     no values
    </xsl:if>
   



 
oups! mauvais copié/collé!
 
il fallait lire: <xsl:attribute name="color">red</xsl:attribute>
 
 
ouala...

therier Moi mes XSL je les fais 'en recursif' ie:
 
<!-- root of document, builds the HTML -->
<xsl:template match="/">
 <xsl:processing-instruction name="cocoon-format">type="text/html"</xsl:pro
cessing-instruction>
 <html>
  <head>  
  </head>
  <body>
   <table cellpadding="5" cellspacing="5">
    <xsl:apply-templates/>
   </table>
  </body>
 </html>
</xsl:template>
 
 
et en fait je cree un template par attribut:
 
<xsl:template match="value">
 <xsl:choose>
  <!-- string input type-->
  <xsl:when test="@type='string'">
    <font size="+2">
    <xsl:if test="normalize-space(.)=''">
     <xsl:attribute ntemplatchtame="color">red</xsl:attribute>
     no values
    </xsl:if>
    <xsl:value-of select="normalize-space(.)"/>
    </font>
  </xsl:when>
 
 
Dans le template sur l'element value, j'ai la visibilité sur les elements et attributs de value.
ZuL

therier a écrit a écrit :

bon deja mets ça a la fin (avant la fermeture de ta stylesheet)
 
<xsl:template match="@*|comment()|processing-instruction()|text()"/>  




 
okay j'ai rajouté...
mais ca ne résout pas mon pbleme
j'ai un tag qui contient une valeur
et je veux faire un test sur cette valeur si elle est egale a "checked" ou pas... :(

therier bon deja mets ça a la fin (avant la fermeture de ta stylesheet)
 
<xsl:template match="@*|comment()|processing-instruction()|text()"/>
ZuL okay
 
la page xsl en entier
 
 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
 
<html>
<head>
</head>
<body>
<form>
<xsl:for-each select="Options/categ">
 <xsl:value-of select="titrecat"/><br/>
 <xsl:for-each select="allotements">
  <input type="radio"><xsl:attribute name="name"><xsl:value-of select="value/name"/></xsl:attribute><xsl:attribute name="name"><xsl:value-of select="value/name"/></xsl:attribute>
  <xsl:if test="/selection.=checked">
   <xsl:attribute name='checked'></xsl:attribute>
  </xsl:if>
  </input>-
  -<xsl:value-of select="libelle"/> - <xsl:value-of select="selection"/><br/>
 </xsl:for-each>
</xsl:for-each>
 
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
 
 
et la page xml vs l avbez la :  
 
http://www.afreto.com/test/xmlmote [...] ntvacances
 
vs clikez chercher, vs selectionnez un pack, une date et "j y vais"
et vs etes sur la page xml en question
 
edit : m'en fou du contenu du <xsl:if..></xsl:if> pour l'instant, le principal C que j'arrive pas a faire le test...
et y me semble que le
<xsl:attribute name='checked'></xsl:attribute>
marche
merci :)

 

[edtdd]--Message édité par zul--[/edtdd]

therier Donne au moins ton tag 'template' en entier!
gedeon Ben déja donne du détail et fais peter ton code
Ton xsl:attribute tout seul c'est louche
De plus selection c'est le root de ton document ?
ZuL voila...
ds ma page xml j ai un champs <selection></selection>
qui contient la valeur "checked" quand le radio doit etre selectionné
donc ds ma page xsl j ai mis un :  
 
<xsl:if test="/selection=checked">
  <xsl:attribute name='checked'></xsl:attribute>
</xsl:if>
 
mais ca me fait une erreur et je trouve pas la syntaxe exacte....
sivouplééééééééé aidez moi  :cry:

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