die XML Gegeben:Konvertieren 6,5 Anzahl in XSL
<quest>
<g_1>
<name>first</name>
<value>4,5</value>
</g_1>
<g_2>
<name>first</name>
<value>4,5</value>
</g_2>
</quest>
Wie kann ich mit Wert als Zahl in xsl arbeiten, ohne zu konvertieren mit übersetzen, zu. ?
<xsl:value-of select="sum(number(translate(current-group()/VALUE[.!=''],',','.')))" />
Dies wird funktionieren, aber ich mag die Lösung nicht. Ich kann nicht umhin zu glauben, dass es eine Funktion gibt, zum Beispiel einen Parameter der Funktion number() hinzufügen, die das ',' als Dezimaltrennzeichen angibt, während das Eingabegebietsschema der Zeichenfolge konvertiert oder spezifiziert wird.
Ich kann die meisten Funktionen nicht verwenden, weil das 6,5 offensichtlich noch keine gültige Zahlennotation ist.
Danke!
'translate (current-group()/VALUE [.! = ''], ',', '.')' Sollte einen Fehler geben, sobald es mehr als einen 'VALUE' gibt. Ich denke du willst lieber 'current-group()/VALUE [.! = '']/Translate (., ',', '.')'. –
Danke für die Warnung, ich werde deine Empfehlung hinzufügen, obwohl ich eher nicht auf Übersetzung angewiesen bin, um meine 6,5 in eine Zahl umzuwandeln. – ReijMan
Eine Zeichenfolge, die andere Zeichen als Ziffern enthält, der Dezimalpunkt und das Minuszeichen können nicht in eine Zahl konvertiert werden. Sie ** müssen ** anfangen, indem Sie das Dezimalkomma zu einem Punkt ändern. –