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

  FORUM HardWare.fr
  Programmation

  [ XML ] - un truc tout con : le if

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ XML ] - un truc tout con : le if

n°57092
ZuL
Posté le 03-09-2001 à 11:57:40  profilanswer
 

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:

mood
Publicité
Posté le 03-09-2001 à 11:57:40  profilanswer
 

n°57097
gedeon
Posté le 03-09-2001 à 12:04:04  profilanswer
 

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 ?

n°57099
therier
heu...coucou!
Posté le 03-09-2001 à 12:08:34  profilanswer
 

Donne au moins ton tag 'template' en entier!

n°57103
ZuL
Posté le 03-09-2001 à 12:11:55  profilanswer
 

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]

n°57106
therier
heu...coucou!
Posté le 03-09-2001 à 12:16:22  profilanswer
 

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

n°57107
ZuL
Posté le 03-09-2001 à 12:24:02  profilanswer
 

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... :(

n°57108
therier
heu...coucou!
Posté le 03-09-2001 à 12:24:50  profilanswer
 

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.

n°57110
therier
heu...coucou!
Posté le 03-09-2001 à 12:27:02  profilanswer
 

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...

n°57111
ZuL
Posté le 03-09-2001 à 12:31:23  profilanswer
 

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]

n°57114
gedeon
Posté le 03-09-2001 à 12:36:55  profilanswer
 

<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

mood
Publicité
Posté le 03-09-2001 à 12:36:55  profilanswer
 

n°57115
therier
heu...coucou!
Posté le 03-09-2001 à 12:39:04  profilanswer
 

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.

n°57118
ZuL
Posté le 03-09-2001 à 12:42:38  profilanswer
 

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 :)

n°57188
phoelis
Posté le 03-09-2001 à 15:23:51  profilanswer
 

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

n°57191
gedeon
Posté le 03-09-2001 à 15:31:01  profilanswer
 

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

n°57193
gedeon
Posté le 03-09-2001 à 15:32:38  profilanswer
 

En gros tu veux tester si la chaine est nulle
donc  
<xsl:if test="selection[text()!='']">
...  
</xsl:if>

n°57195
phoelis
Posté le 03-09-2001 à 15:35:56  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [ XML ] - un truc tout con : le if

 

Sujets relatifs
JSP et XML[Perl] Equivalent en Perl de la commande: echo "truc" > truc.txt
[JAVASCRIPT] transformer une page XML en chaine de caracteregenerer une variable javascript en XML/XSL
XML - sivouplééééé[HTML] Truc con : image sur une balise INPUT type SUBMIT,
XML/ASPapache : quelqu'un j'ai un truc bizarre dans mes logs
[C++] Truc idiot : définition d'une constante dans une classe[XML & MFC] écrire et lire un fichier XML, quelles classes MFC ?
Plus de sujets relatifs à : [ XML ] - un truc tout con : le if


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR