Setting the attribute level into multiple : number « 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"/>
            </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>1</TD><TD>First Chapter</TD></TR><TR><TD>2</TD><TD>
    Second Chapter
    </TD></TR><TR><TD>2.1</TD><TD>Subchapter 1</TD></TR><TR><TD>2.2</TD><TD>Subchapter 2</TD></TR><TR><TD>3</TD><TD>
    Third Chapter
    </TD></TR><TR><TD>3.1</TD><TD>Subchapter A</TD></TR><TR><TD>3.2</TD><TD>
      Subchapter B
      </TD></TR><TR><TD>3.2.1</TD><TD>sub a</TD></TR><TR><TD>3.2.2</TD><TD>sub b</TD></TR><TR><TD>3.3</TD><TD>Subchapter C</TD></TR></TABLE>








5.16.number
5.16.1.number level="any" count="section | element" format="1. "
5.16.2.number format: roman
5.16.3.number format=" 01. "
5.16.4.number value="1000000" grouping-size="3" grouping-separator=","
5.16.5.number format="A."
5.16.6.number format="I "
5.16.7.number format=" a. "
5.16.8.number value="position()" format="1. "
5.16.9.number format="1. "
5.16.10.number value="count(car)" format="01"
5.16.11.number count="manufacturer|car" level="multiple" format="1.1. "
5.16.12.count="manufacturer|car" level="any" format="1. "
5.16.13.xsl:number inserts formated numbers into output
5.16.14.The format is given with format attribute.
5.16.15.The attribute starts with format identificator followed by separator characters.
5.16.16.xsl:number value="position()" format="a# "
5.16.17.xsl:number value="position()" format="i: "
5.16.18.xsl:number value="position()" format="I... "
5.16.19.demonstrates the default behaviour of xsl:number element
5.16.20.Setting the attribute level into multiple