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 |