Diviser et de se Multiplier la valeur de sélectionner dans XSLT
Juste envie de multiplier la valeur de sélectionner par 1000000 après la div, très nouveau à cela, je suis sûr que c'est une question facile pour quelqu'un. Merci à l'avance.
<xsl:value-of select="AbsolutePos/@x div 80" />
Vouloir multiplier par 1000000, ne pense pas que cela est juste, est donc de retour valeur incorrecte
<xsl:value-of select="AbsolutePos/@x div 80 * 1000000" />
Suite: Avoir le code XML suivant
<AbsolutePos x="-1.73624e+006" y="-150800" z="40000"></AbsolutePos>
Avoir besoin de changer
<PInsertion>-21703,-1885,500</PInsertion>
À l'aide de XSL
<PInsertion><xsl:value-of select="AbsolutePos/@x div 80 * 1000000" />,<xsl:value-of select="AbsolutePos/@y div 80" />,<xsl:value-of select="AbsolutePos/@z div 80" /></PInsertion>
Bien que la réception de
<PInsertion>NaN,-1885,500</PInsertion>
Suppose de prendre la valeur de X et de le diviser par 80 puis le multiplier par 10000 pour revenir -21703
Ton code semble correct. Quelle est la valeur de @x?
"donc, c'est de revenir valeur incorrecte" Un exemple spécifique, y compris l'entrée et reçu le résultat serait utile.
Fait des modifications ci-dessus à ma question de départ, grâce tas.
Pas tous les processeurs XSLT de reconnaître que
C'est là que c'est de la faute et de retour; <PInsertion>NaN,-1885,500</PInsertion> ,tout ce que je pouvais faire?
"donc, c'est de revenir valeur incorrecte" Un exemple spécifique, y compris l'entrée et reçu le résultat serait utile.
Fait des modifications ci-dessus à ma question de départ, grâce tas.
Pas tous les processeurs XSLT de reconnaître que
-1.73624e+006
est un nombre.C'est là que c'est de la faute et de retour; <PInsertion>NaN,-1885,500</PInsertion> ,tout ce que je pouvais faire?
OriginalL'auteur Percival_a | 2014-05-27
Vous devez vous connecter pour publier un commentaire.
Si votre processeur XSLT ne reconnaît pas la notation scientifique, vous aurez à faire le travail vous - même, par exemple:
XSLT 1.0
Remarque que c'est un exemple simplifié qui ne le sera pas pour les exposants négatifs.
Modifier
Si votre entrée toujours suit le modèle de (seulement) @x étant en forme de
#.####e+006
alors vous pouvez faire cela beaucoup plus simple en prenant la valeur desubstring-before(AbsolutePos/@x, 'e+')
et en le multipliant par 12500 (c'est à dire 10^6 /80).OriginalL'auteur michael.hor257k