| Nic Miloslav Example 19 | KEYWORDS EXAMPLES AUTHORS |
|---|
Stylesheet 1 demonstrates the default behaviour of xsl:number element. Numbering of individual chapter elements depends on position of the chapter element. Each level of chapters is numbered independently.
Setting the attribute level into multiple in Stylesheet 2 enables more natural numbering.
| XML | HOME XSL 1 XSL 2 |
|---|
| <xslTutorial > |
| <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> |
| </xslTutorial> |
| XSL 1 | HOME XML HTML 1 OUTPUT 1 |
|---|
| <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' > |
| <xsl:template match="/"> |
| <TABLE BORDER="1"> |
| <TR><TH>Number</TH><TH>text</TH></TR> |
| <xsl:for-each select="//chapter"> |
| <TR><TD> |
| <xsl:number/ > |
| </TD><TD> |
| <xsl:value-of select="./text()"/> |
| </TD></TR> |
| </xsl:for-each> |
| </TABLE> |
| </xsl:template> |
| </xsl:stylesheet> |
| HTML 1 | HOME XML XSL 1 OUTPUT 1 |
|---|
| <HTML> |
| <HEAD> </HEAD> |
| <BODY> |
| <TABLE BORDER="1"> |
| <TR> |
| <TH>Number</TH> |
| <TH>text</TH></TR> |
| <TR> |
| <TD>1</TD> |
| <TD>First Chapter</TD></TR> |
| <TR> |
| <TD>2</TD> |
| <TD>Second Chapter </TD></TR> |
| <TR> |
| <TD>1</TD> |
| <TD>Subchapter 1</TD></TR> |
| <TR> |
| <TD>2</TD> |
| <TD>Subchapter 2</TD></TR> |
| <TR> |
| <TD>3</TD> |
| <TD>Third Chapter </TD></TR> |
| <TR> |
| <TD>1</TD> |
| <TD>Subchapter A</TD></TR> |
| <TR> |
| <TD>2</TD> |
| <TD>Subchapter B </TD></TR> |
| <TR> |
| <TD>1</TD> |
| <TD>sub a</TD></TR> |
| <TR> |
| <TD>2</TD> |
| <TD>sub b</TD></TR> |
| <TR> |
| <TD>3</TD> |
| <TD>Subchapter C</TD></TR></TABLE> </BODY> </HTML> |
| OUTPUT 1 | HOME XML XSL 1 HTML 1 |
|---|
| Number | text |
|---|---|
| 1 | First Chapter |
| 2 | Second Chapter |
| 1 | Subchapter 1 |
| 2 | Subchapter 2 |
| 3 | Third Chapter |
| 1 | Subchapter A |
| 2 | Subchapter B |
| 1 | sub a |
| 2 | sub b |
| 3 | Subchapter C |
| XSL 2 | HOME XML HTML 2 OUTPUT 2 |
|---|
| <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' > |
| <xsl:template match="/"> |
| <TABLE BORDER="1"> |
| <TR><TH>Number</TH><TH>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> |
| HTML 2 | HOME XML XSL 2 OUTPUT 2 |
|---|
| <HTML> |
| <HEAD> </HEAD> |
| <BODY> |
| <TABLE BORDER="1"> |
| <TR> |
| <TH>Number</TH> |
| <TH>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> </BODY> </HTML> |
| OUTPUT 2 | HOME XML XSL 2 HTML 2 |
|---|
| Number | text |
|---|---|
| 1 | First Chapter |
| 2 | Second Chapter |
| 2.1 | Subchapter 1 |
| 2.2 | Subchapter 2 |
| 3 | Third Chapter |
| 3.1 | Subchapter A |
| 3.2 | Subchapter B |
| 3.2.1 | sub a |
| 3.2.2 | sub b |
| 3.3 | Subchapter C |