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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Valeur d'une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Valeur d'une fonction

n°1462115
esox_ch
Posté le 21-10-2006 à 18:44:13  profilanswer
 

Bonjour, le problème est simple à expliquer. J'ai :
 
<xsl:value-of select="concat('../../items/item/',current()/name,'/value')"/>
 
Et au lieu d'obtenir la valeur du noeux value, j'obtiens le path (c'est à dire ../../items/item/idvalue dans le cas ou current/name = id)
 
Je ne comprend pas bien pourquoi, on dirait que value-of me retourne directement ce qui est retourné par concat, au lieu de le prendre comme un noeud.
 
Est-ce que qqn peut m'éclairer?
 
 
Merci beaucoup


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 21-10-2006 à 18:44:13  profilanswer
 

n°1462117
FlorentG
Unité de Masse
Posté le 21-10-2006 à 18:46:30  profilanswer
 

Ben ouais, tu sélectionnes un truc, mais dans le sélect tu fait un concat... Donc tu va récupérer le résultat du concat [:petrus75]
 
Il faut que le chemin soit un noeud. Là t'as une string (!)

n°1462137
esox_ch
Posté le 21-10-2006 à 19:05:25  profilanswer
 

Oui j'avais bien imaginé, mais y a-t-il un moyen de le transformer en noeud afin de pouvoir apres recuperer sa valeur?
Mon probleme sans faire un concat, c'est que  
<xsl:value-of select="../../items/item/(current()/name)/value)"/>  
Est illegal ... J'ai aussi essayé en mettant current()/name dans une variable et après la mettre dans le string mais c'est aussi interdit.. Du coup je commance a secher :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1462333
FlorentG
Unité de Masse
Posté le 22-10-2006 à 10:43:00  profilanswer
 

'tain ch'uis trop rouillé, ch'uis sûr y'a un moyen

n°1462337
esox_ch
Posté le 22-10-2006 à 10:47:27  profilanswer
 

Idem :D Mais ça fait depuis hier soir je que lis de la doc sur xsl , xpath & co et j'ai toujours rien trouvé :/


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1462341
FlorentG
Unité de Masse
Posté le 22-10-2006 à 10:51:30  profilanswer
 

Ah attend, j'me souvient d'un truc, style :

<xsl:template name="pouet">
  <xsl:param name="element" />
  <xsl:param name="tagada" />
  <xsl:value-of select="$element/../../items/item/$tagada/value" />
</xsl:template>


Et

<xsl:call-template name="pouet">
  <xsl:with-param name="element"><xsl:value-of select="current()" />
  <xsl:with-param name="tagada"><xsl:value-of select="current()/name" />
</xsl:call-template>


 
C'est un truc dans le genre...

n°1462343
esox_ch
Posté le 22-10-2006 à 10:56:48  profilanswer
 

J'ai déjà essayé :( Quand je fais un :
<xsl:value-of select="../../items/item/$truc/name/value"/>
Mais ce con me pond un  
Error in expression ../../items/item/$truc/name/value: Unexpected token [$] in path expression


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1462344
FlorentG
Unité de Masse
Posté le 22-10-2006 à 10:58:14  profilanswer
 

File-moi ton xml et ton xsl que j'essaye [:dawak]

n°1462349
esox_ch
Posté le 22-10-2006 à 11:06:49  profilanswer
 

http://www.jeunesliberaux.ch/upload/tmp.xsl
http://www.jeunesliberaux.ch/upload/tmp.xml
 
Merci :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1462370
FlorentG
Unité de Masse
Posté le 22-10-2006 à 11:58:57  profilanswer
 

[précision entre deux recherches]
 
T'as pas besoin de tout préfixer avec current(), genre :

Code :
  1. <xsl:if test="current()/type = 'password'">


Peut-être réécrit

Code :
  1. <xsl:if test="type = 'password'">

mood
Publicité
Posté le 22-10-2006 à 11:58:57  profilanswer
 

n°1462372
esox_ch
Posté le 22-10-2006 à 12:05:20  profilanswer
 

merci :)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1462376
FlorentG
Unité de Masse
Posté le 22-10-2006 à 12:15:07  profilanswer
 

Done !
 
Bon, va falloir un peu revoir ton XSL qui est un peu en bordel [:dawak]
 
 
Donc j'ai modifié là où t'as mis le <!-- ICI --> :

Code :
  1. <xsl:when test="current()/visibility ='text' and /page/@action != 'add' ">
  2.   <xsl:apply-templates select="." />
  3. </xsl:when>


J'ai fait une template en-dessous du coup :

Code :
  1. <xsl:template match="field">
  2.         <xsl:variable name="zeName" select="name" />
  3.         <xsl:value-of select="$zeName"/>:
  4.         <xsl:element name="input">
  5.             <xsl:attribute name="type">text</xsl:attribute>
  6.             <xsl:attribute name="name">
  7.                 <xsl:value-of select="$zeName"/>
  8.             </xsl:attribute>
  9.             <xsl:attribute name="value">
  10.             <xsl:value-of select="/page/body/form/items/item/*[name()=$zeName]" />
  11.             </xsl:attribute>
  12.             <xsl:attribute name="size">
  13.                 <xsl:value-of select="string-length(value)"/>
  14.             </xsl:attribute>
  15.         </xsl:element>
  16.     </xsl:template>


Et ouala [:dawak] J'ai bien 215 dans en valeur de id... Maintenant faut faire les autres, d'où une réorganisation nécessaire de ta XSLT.
 
Donc le truc, c'est qu'on peut pas mettre comme ça de variable dans un xpath. T'es obligé d'utiliser :

Code :
  1. *[name()=$name]

n°1462377
FlorentG
Unité de Masse
Posté le 22-10-2006 à 12:15:33  profilanswer
 

Au passage si tu te fais chier : http://www.dpawson.co.uk/xsl/sect2/sect21.html

n°1462385
esox_ch
Posté le 22-10-2006 à 12:36:05  profilanswer
 

Merci beaucoup Florent, je connaissais pas le coup du *[name()=$name]  :D
 
Je vais lire ton site web.
 
Encore merci


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

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

  Valeur d'une fonction

 

Sujets relatifs
Nom de variable en fonction de la valeur d'une autreFonction et $variable=valeur de sortie
Fonction faire resortir valeurPeut ont recupére la valeur de retour d'une fonction JS dans du php?
[PHP/XML] Afficher en fonction de sa valeur classer ? [maj]valeur de <input text> en fonction d'un <select>
Fonction qui retourne différent type de valeur.ouvrir un formulaire en fonction d'une valeur
Valeur résultat dans une fonction shell ?Valeur de retour d'une fonction si erreur
Plus de sujets relatifs à : Valeur d'une fonction


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