formatting of multilevel numbers : number format « XSLT stylesheet « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="utf-8"?>
<data>
  <chapter>First Chapter</chapter>
  <chapter>
    Second Chapter
    <chapter>Subchapter 1</chapter>
    <chapter>Subchapter 2</chapter>
  </chapter>
  <chapter>
    Third Chapter
    <chapter>Subchapter A</chapter>
    <chapter>
      Subchapter B
      <chapter>sub a</chapter>
      <chapter>sub b</chapter>
    </chapter>
    <chapter>Subchapter C</chapter>
  </chapter>
</data>

File: Transform.xslt

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
      version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">

      <TABLE BORDER="1">
        <TR>
          <td>Number</TH>
          <td>text</TH>
        </TR>
        <xsl:for-each select="//chapter">
          <TR>
            <TD>
              <xsl:number level="multiple" format="I-1-a:"/>
            </TD>
            <TD>
              <xsl:value-of select="./text()"/>
            </TD>
          </TR>
        </xsl:for-each>
      </TABLE>
    </xsl:template>
</xsl:stylesheet>
Output:

<?xml version="1.0" encoding="UTF-8"?><TABLE BORDER="1"><TR><td>Number</TH><td>text</TH></TR><TR><TD>I:</TD><TD>First Chapter</TD></TR><TR><TD>II:</TD><TD>
    Second Chapter
    </TD></TR><TR><TD>II-1:</TD><TD>Subchapter 1</TD></TR><TR><TD>II-2:</TD><TD>Subchapter 2</TD></TR><TR><TD>III:</TD><TD>
    Third Chapter
    </TD></TR><TR><TD>III-1:</TD><TD>Subchapter A</TD></TR><TR><TD>III-2:</TD><TD>
      Subchapter B
      </TD></TR><TR><TD>III-2-a:</TD><TD>sub a</TD></TR><TR><TD>III-2-b:</TD><TD>sub b</TD></TR><TR><TD>III-3:</TD><TD>Subchapter C</TD></TR></TABLE>








5.14.number format
5.14.1.format number after calculation
5.14.2.select=format-number(catalog/item/price * 0.60, ###.00)
5.14.3.format-number(999999999.9999, '#.###,##')
5.14.4.format-number(123456.9999, '#,###.##', 'us_default') : 123,457
5.14.5.format-number(number(1) div 0, '#.#')
5.14.6.format-number(number(1) div 0, '#.#', 'other_options')
5.14.7.format-number(number('blue') * number('orange'), '#')
5.14.8.format-number(number('blue') * number('orange'), '#', 'other_options')
5.14.9.format-number(42, '#!','hash_mark')
5.14.10.select=format-number($totalSales, ##,###)
5.14.11.format-number(1528.3, '#/###:00', 'f1')
5.14.12.format-number(1 div 0, '###,###.00', 'f2')
5.14.13.format-number(blue div orange, '#.##', 'f2')
5.14.14.formatting of multilevel numbers