Учитывая XML:Преобразовать 6,5 номер в 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>
Как я могу работать со значением в виде числа в XSL без перевода, чтобы преобразовать, в. ?
<xsl:value-of select="sum(number(translate(current-group()/VALUE[.!=''],',','.')))" />
Это будет работать, но мне не нравится решение. Я не могу не думать о том, что есть функция, например добавление параметра функции number(), задающего символ «,» в качестве decimal-separator при преобразовании или указании языка ввода строки.
Я не могу использовать большинство функций, потому что 6,5, очевидно, еще не является допустимым числом.
Спасибо!
'translate (current-group()/VALUE [.! = ''], ',', '.')' Должен давать ошибку, как только существует более одного значения VALUE. Я думаю, вы скорее хотите «current-group()/VALUE [.! = '']/Translate (., ',', '.')'. –
Спасибо за предупреждение, я добавлю вашу рекомендацию, хотя я предпочитаю не зависеть от перевода, чтобы полностью конвертировать мои 6,5 в число. – ReijMan
Строка, содержащая любые символы, отличные от цифр, десятичная точка и знак минуса, не могут быть преобразованы в число. Вы должны ** начинать с изменения десятичной запятой до точки. –