Поля суммы XSLT 1.0 должны иметь как минимум 2 десятичных знака - PullRequest
3 голосов
/ 06 марта 2012

У меня есть два xmls. Есть поле количества, которое может содержать значения, такие как 54.2,54.23,54.234,54.234567.

Кто-нибудь, пожалуйста, скажите мне, как я могу убедиться, что по крайней мере два десятичных знака появятся ввыходной xml. В настоящее время 54,2 преобразуется в 54,2, но я хочу, чтобы он был 54,20

1 Ответ

9 голосов
/ 19 марта 2012

Вы можете использовать функцию format-number () для преобразования числа в строку в заданном формате.Если вы используете эту строку формата "# .00 ##########", появятся как минимум два десятичных знака.

Если у вас есть XML-файл, который может содержать значения, такие как 54.2,54.23, 54.234,54.234567:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
        <price>54.2</price>
        <price>54.23</price>
        <price>54.234</price>
        <price>54.234567</price>
</catalog>

Вы можете преобразовать числа с помощью xslt следующим образом, чтобы получить как минимум два десятичных знака

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
      <xsl:for-each select="/catalog/price">
             <xsl:value-of select='format-number(., "#.00##########")'/><br />
      </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Затем выведите:

54.20
54.23
54.234
54.234567
...