Comment spécifier «non égal à» lors de la comparaison de chaînes dans un XSLT ?

Actuellement, j’ai un code xsl avec le code suivant où j’essaie d’imprimer “count” uniquement s’il n’est pas égal à N/A mais semble que "!=" ne fonctionne pas.

          

Cependant, cela fonctionne si j’essaie de le comparer avec une valeur numérique.

Exemple:

  

Quelqu’un peut-il s’il vous plaît me dire: Si je voudrais comparer des chaînes de caractères, que puis-je utiliser?

Comme dit Filburt; mais notez également qu’il est généralement préférable d’écrire

 test="not(Count = 'N/A')" 

S’il y a exactement un élément Count, ils signifient la même chose, mais s’il n’y a pas de Count ou s’il y en a plusieurs, les significations sont différentes.

6 ans plus tard

Comme cette réponse semble être devenue populaire, mais peut-être un peu énigmatique pour certains lecteurs, permettez-moi de la développer.

L’opérateur “=” et “! =” Dans XPath peut comparer deux ensembles de valeurs. En général, si A et B sont des ensembles de valeurs, alors “=” renvoie true s’il y a une paire de valeurs de A et B égales, alors que “! =” Renvoie true s’il y a une paire inégale.

Dans le cas courant où A sélectionne des noeuds zéro ou un et B une constante (disons “NA”), cela signifie que not(A = "NA") renvoie true si A est soit absent, soit a une valeur non égal à “NA”. En revanche, A != "NA" renvoie true si A est présent et non égal à “NA”. Habituellement, vous voulez que le cas “absent” soit traité comme “non égal”, ce qui signifie que not(A = "NA") est la formulation appropriée.

Si vous voulez comparer un littéral de chaîne, vous devez le mettre entre guillemets: