Bonjour,

Je souhaite définir le contenu d'une variable en fonction de certaines condition.

Un peu de concret...:
Dans mon document que je transforme je définis différents paramètres de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<parametre>
  <nom>paramNom</nom>
  <type>paramType</type>
  <valeur>paramValeur</valeur>
</parametre>
dans un autre endroit de mon xml, je peux faire référence à ces paramètres de la manière suivante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<style param="paramNom" />
Dans un template qui match les éléments style je voudrais pouvoir définir une variable de cette manière

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<xsl:template match="style">
  <xsl:variable name="prefix">
    <xsl:if test=" m a   c o n d i t i o n ">'#' . </xsl:if>
  </xsl:variable>
  ... le reste ...
</xsl:template>
La condition que je cherche à écrire serait:
il existe un noeud paramètre qui possède un noeud enfant (nom) dont la valeur vaut l'attribut param de style (le noeud qui match dans le template) et qui possède un noeud enfant (type) dont la valeur est la chaine 'color'.

Pour l'instant, j'ai écris ce chemin pour mon test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
//parametre[child::nom[text()=./@param] and child::type[text()='color']]
Mais ca ne semble rien sélectionner...

Je m'en remets donc à vous. Si a travers mon message vous constatez certaines erreurs classiques de débutants, n'hésitez surtout pas à me le dire...

Merci de m'avoir lu jusque ici!