2013-12-14 5 views
0

У меня есть несколько таких, как: 457342137, но я хочу, чтобы отобразить его в виде 457 342 137Space в числовом формате для XSL

У меня есть что-то вроде этого:

<xsl:template match="klient/@numer_telefonu"> 
     <xsl:variable name="numer" select="." /> 
     <xsl:value-of select="format-number($numer, '###&nbsp;###&nbsp;###')" /> 
    </xsl:template> 

но это не Работа.

ответ

3

Номер телефона строка, а не номер номер, и вы не должны пытаться форматировать его как один. Технически вы можете сделать:

<xsl:value-of select="translate(format-number(., '#,###'), ',', ' ')" /> 

для достижения желаемого результата в вашем примере. Однако, учитывая «число», такое как «057342137», результатом будет «57 342 137» (высшие нули разделены). Вы должны использовать строковые функции для управления строкой.

2

Если вы хотите использовать нестандартный «группировка» разделитель, сначала необходимо определить символы, которые вы собираетесь использовать в формате команды следующим образом:

<xsl:decimal-format name="spaces" grouping-separator=" " /> 

Затем, вы можете ссылаться на этот формат в самой команды следующим образом:

<xsl:value-of select="format-number($numer, '# ###', 'spaces')" /> 

Дополнительная информация о десятичный формат можно найти на http://www.w3.org/TR/xslt#format-number

Смежные вопросы