Comment vérifier la variable qui est de plus en xsl?
<xsl:variable name="a">20</xsl:variable>
<xsl:variable name="b">10</xsl:variable>
<xsl:if test="($a) > ($b)">
------
</xsl:if>
Je avoir d'erreur dans le cas condion..
Semble bien pour moi. Ni libxslt ni Transformiix afficher une erreur.
utile @user_nums
utile @user_nums
OriginalL'auteur user475464 | 2012-02-01
Vous devez vous connecter pour publier un commentaire.
Essayez ce qui suit :
Essayez d'utiliser les entités de caractère pour > (>) et < (<) les opérateurs dans les expressions, sinon certains analyseurs pense que vous êtes la fermeture de la balise de début, ou en ouvrir une autre.
>
. Il est tout à fait possible d'utiliser$a > $b
.Vous avez raison, l'analyseur XSLT j'ai utilisé il ya de nombreuses lunes m'a mis dans la pratique d'y échapper pour éviter les erreurs d'analyse. Viens de vérifier maintenant et votre code fonctionne très bien. J'apprends quelque chose de nouveau chaque jour, merci!
OriginalL'auteur Goran Mottram
L'exemple que vous avez posté devrait fonctionner. Cependant, vous ne devriez pas que dans votre cas, les deux variables sont de type chaîne de caractères qui peut donner des résultats surprenants, où leur longueur varie. Le comportement de l'opérateur de comparaison sur les différents types de données est spécifié dans la xpath spec sur les booléens.
Pour éviter cela, vous pouvez déclarer les variables en utilisant la
select
attribut ou manuellement les convertir en nombre pour la comparaison:Vous avez raison, le paragraphe précédant votre devis uniquement appliquée aux opérateurs
=
et!=
.OriginalL'auteur Jörn Horstmann