En additionnant les nombres avec une virgule comme séparateur décimal dans XSLT?
J'ai un fichier XML où le nombre sont séparées par des virgules
<foo>
<bar val="1,23"/>
<bar val="4,56"/>
<bar val="7,89"/>
</foo>
Je voudrais faire une somme sur les /foo/bar/@val
valeurs dans XSLT, mais je suis un peu bloqué la mise en forme. Personne ne sait ce qui serait la bonne syntaxe?
Vous devez vous connecter pour publier un commentaire.
Je suppose, que la valeur spécifiée dans un
"val"
attribut est un nombre a virgule au lieu d'un point décimal.Plusieurs solutions sont possibles:
I. XSLT 1.0
Cette transformation:
lorsqu'il est appliqué sur l'origine du document XML fourni par le:
produit le résultat voulu:
II. XSLT 2.0
Cette transformation:
lorsqu'il est appliqué sur le même document XML, produit le même résultat correct:
13.68
III. FXSL 2.x
Cette transformation:
lorsqu'il est appliqué sur le même document XML produit le même résultat correct:
13.68
La dernière solution est plus souple et peut être utilisé avec succès lors de plus en plus complexes, de la transformation des valeurs est nécessaire avant de sommation.
En supposant même que Dimitre, que voulez-vous dire que la virgule est utilisée comme séparateur décimal, non pas comme un séparateur de liste d'entiers.
Pur XSLT 1.0, sans EXSLT node-set d'extension:
Je me sens comme je l'ai dit beaucoup de fois, mais il est bon de le répéter: le point de l'ensemble de XML est qu'il fournit des données facilement parsable forme. XML qui contient des données qui ne peuvent pas être analysée comme XML n'a pas de sens; si possible, vous devriez corriger votre code XML ou utiliser un format différent.