Bonjour,

existe-t-il une fonction pour tester si une variable est déclarée dans le genre de la fonction isset de php?

Les tests assimilés à un not empty ($p = '' - string-length($p) = 0 - number($p) = 0) me renvoient tous une erreure "Variable 'p' has not been declared."

Merci de votre aide,
ramy.
Modifié par ramy (05 Apr 2008 - 20:18)
Bonjour!

Et pourquoi pas un simple test="$p" ? Après tout, cela teste l'existence d'un noeud, pourquoi pas d'une variable:

<xsl:choose>
    <xsl:when test="$p">Variable définie</xsl:when>
    <xsl:otherwise>Variable non définie</xsl:otherwise>
</xsl:choose>

Modifié par Gilles (06 Apr 2008 - 10:29)
Merci Gilles mais cette solution génere le meme message d'erreur :
Variable 'p' has not been declared.


J'ai beau chercher, je ne trouve pas de solution pour tester si une variable à été déclarée ou non. Si vous avez une autre idée...
Modifié par ramy (07 Apr 2008 - 15:10)
On ne peut utiliser une variable que si elle a été définie dans un noeud frère ou ancêtre de l'élément courant.

Par exemple...

<xsl:for-each select="truc">
    <xsl:variable name="p" select="@machin" />
</xsl:for-each>
<xsl:value-of select="$p" />

... ne peut pas marcher, mais...

<xsl:for-each select="truc">
    <xsl:variable name="p" select="@machin" />
    <xsl:value-of select="$p" />
</xsl:for-each>
...
marchera.
a écrit :
On ne peut utiliser une variable que si elle a été définie dans un noeud frère ou ancêtre de l'élément courant.


Je vais chercher encore un peu mais il semble en effet que rien ne permet en xsl de vérifier si une variable a été définie ou non.

Merci de ton aide, je vais essayer de prendre ce probleme par un autre bout ^^
Modifié par ramy (14 Apr 2008 - 11:16)