Xsl объединяет substring-before и format-number - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь объединить подстроку перед (взять номер без '-') и число формата, но ошибка отправки.

Я пробую этот XSL:

<fo:block text-align="right" margin-right="3px" margin-top="5px">
    <xsl:value-of select="format-number(substring-before(/DTE/pdf/dscDistri/text(), '-'), '#.###,00', 'CL')"/>
</fo:block>

XML:

<dscDistri>4956,00-</dscDistri>
<dscFinan>1239,00-</dscFinan>
<dscEspec>194,00-</dscEspec>

PDF

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Это типичная проблема обозначений ЕС и США. Одним из решений является использование функции translate дважды. Во-первых, используйте его для преобразования строки в формат США. Затем примените format-string(..). Наконец, преобразуйте строку в нотацию ЕС.

Это может выглядеть так:

<fo:block text-align="right" margin-right="3px" margin-top="5px">
    <xsl:value-of select="translate(format-number(translate(substring-before(DTE/pdf/dscDistri/text(), '-'),',.','.,'), '#,###.00'),'.,',',.')"/>
</fo:block>

Выход:

<fo:block...>4.956,00</fo:block>

Это ужасно, но спецификация XSLT ориентирована на США. Так что это плохая ситуация для людей из ЕС.

0 голосов
/ 04 июля 2018

Возможно, вы используете неправильный формат. пытаться #, ###. 00 вместо #. ###, 00

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...