Nic Miloslav Example 81 | KEYWORDS EXAMPLES AUTHORS |
---|
Stylesheet 1 generates a table with selected elements,
with the number of elements per row given in the stylesheet. If the elements should be sorted, the solution is more complex (Stylesheet 2).
XML | HOME XSL 1 XSL 2 |
---|
<xslTutorial > |
<data> |
<item>Fe</item> |
<item>Cl</item> |
<item>Br</item> |
<item>I</item> |
<item>Ni</item> |
<item>H</item> |
<item>Po</item> |
<item>S</item> |
<item>O</item> |
</data> |
</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'> |
<xsl:variable name="inRow" select='3'/> |
<xsl:apply-templates select="//item[position() mod $inRow = 1]"> |
<xsl:with-param name='inRow' select='$inRow'/> |
</xsl:apply-templates> |
</TABLE> |
<TABLE border='1'> |
<xsl:variable name="inRow" select='4'/> |
<xsl:apply-templates select="//item[position() mod $inRow = 1]"> |
<xsl:with-param name='inRow' select='$inRow'/> |
</xsl:apply-templates> |
</TABLE> |
<TABLE border='1'> |
<xsl:variable name="inRow" select='5'/> |
<xsl:apply-templates select="//item[position() mod $inRow = 1]"> |
<xsl:with-param name='inRow' select='$inRow'/> |
</xsl:apply-templates> |
</TABLE> |
</xsl:template> |
<xsl:template match="item"> |
<xsl:param name="inRow"/> |
<TR> |
<TD><xsl:value-of select="."/></TD> |
<xsl:apply-templates select="following::item[position() < $inRow]" mode='cell'/> |
</TR> |
</xsl:template> |
<xsl:template match="item" mode='cell'> |
<xsl:param name="inRow"/> |
<TD><xsl:value-of select="."/></TD> |
</xsl:template> |
</xsl:stylesheet> |
HTML 1 | HOME XML XSL 1 OUTPUT 1 |
---|
<TABLE border="1"> |
<TR> |
<TD>Fe</TD> |
<TD>Cl</TD> |
<TD>Br</TD></TR> |
<TR> |
<TD>I</TD> |
<TD>Ni</TD> |
<TD>H</TD></TR> |
<TR> |
<TD>Po</TD> |
<TD>S</TD> |
<TD>O</TD></TR></TABLE> |
<TABLE border="1"> |
<TR> |
<TD>Fe</TD> |
<TD>Cl</TD> |
<TD>Br</TD> |
<TD>I</TD></TR> |
<TR> |
<TD>Ni</TD> |
<TD>H</TD> |
<TD>Po</TD> |
<TD>S</TD></TR> |
<TR> |
<TD>O</TD></TR></TABLE> |
<TABLE border="1"> |
<TR> |
<TD>Fe</TD> |
<TD>Cl</TD> |
<TD>Br</TD> |
<TD>I</TD> |
<TD>Ni</TD></TR> |
<TR> |
<TD>H</TD> |
<TD>Po</TD> |
<TD>S</TD> |
<TD>O</TD></TR></TABLE> |
OUTPUT 1 | HOME XML XSL 1 HTML 1 |
---|
Fe | Cl | Br |
I | Ni | H |
Po | S | O |
Fe | Cl | Br | I |
Ni | H | Po | S |
O |
Fe | Cl | Br | I | Ni |
H | Po | S | O |
XSL 2 | HOME XML HTML 2 OUTPUT 2 |
---|
HTML 2 | HOME XML XSL 2 OUTPUT 2 |
---|
<TABLE border="1"> |
<TR> |
<TD>Br</TD> |
<TD>Cl</TD> |
<TD>Fe</TD> |
<TD/></TR> |
<TR> |
<TD>H</TD> |
<TD>I</TD> |
<TD>Ni</TD> |
<TD/></TR> |
<TR> |
<TD>O</TD> |
<TD>Po</TD> |
<TD>S</TD> |
<TD/></TR> |
<TR> |
<TD/></TR></TABLE> |
<TABLE border="1"> |
<TR> |
<TD>Br</TD> |
<TD>Cl</TD> |
<TD>Fe</TD> |
<TD>H</TD> |
<TD/></TR> |
<TR> |
<TD>I</TD> |
<TD>Ni</TD> |
<TD>O</TD> |
<TD>Po</TD> |
<TD/></TR> |
<TR> |
<TD>S</TD> |
<TD/></TR> |
<TR> |
<TD/></TR></TABLE> |
<TABLE border="1"> |
<TR> |
<TD>Br</TD> |
<TD>Cl</TD> |
<TD>Fe</TD> |
<TD>H</TD> |
<TD>I</TD> |
<TD/></TR> |
<TR> |
<TD>Ni</TD> |
<TD>O</TD> |
<TD>Po</TD> |
<TD>S</TD> |
<TD/></TR> |
<TR> |
<TD/></TR></TABLE> |
OUTPUT 2 | HOME XML XSL 2 HTML 2 |
---|
Br | Cl | Fe | |
H | I | Ni | |
O | Po | S | |
Br | Cl | Fe | H | |
I | Ni | O | Po | |
S | ||||
Br | Cl | Fe | H | I | |
Ni | O | Po | S | ||