XSL против форматов номеров регионализации / интернационализации - PullRequest
2 голосов
/ 07 января 2011

Существует ли какая-либо поддержка регионализации, встроенная в XSL, когда дело касается форматирования чисел?

В настоящее время мой базовый XML содержит числа в формате Великобритании / США, например, 54321.12345.Я могу сделать выборочную сумму, чтобы получить итоговую сумму в том же формате.Я могу отформатировать число, используя format-number (54321.12345, '###, ###. #####'), чтобы получить 54,321.12345.

Однако, когда я хочу, чтобы это работало в другом регионена моей машине, например, в странах Центральной Европы, в которых разделитель запятых имеет значение "."и десятичный разделитель как "," я хочу отформатировать мои числа таким образом, чтобы получить 54,321,12345.

Есть ли хороший способ сделать это в XSL?

Спасибо,

Андез

Ответы [ 2 ]

4 голосов
/ 07 января 2011

С http://www.w3.org/TR/xslt#format-number

Элемент xsl:decimal-format объявляет десятичный формат, который управляет интерпретацией шаблона формата, используемого функцией format-number.

<!-- Category: top-level-element -->
<xsl:decimal-format
  name = qname 
  decimal-separator = char 
  grouping-separator = char 
  infinity = string 
  minus-sign = char 
  NaN = string 
  percent = char 
  per-mille = char 
  zero-digit = char 
  digit = char 
  pattern-separator = char />
2 голосов
/ 07 января 2011

У меня теперь есть следующий xsl:

<!-- define number format to use -->
<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />

<!-- format the number -->
<xsl:value-of select="format-number(54321.12345,'###.##0,0000', 'european')"/>
...