| |
5. 5. 5. generates a table with selected elements,with the number of elements per row given in the stylesheet |
|
File: Data.xml
<?xml version="1.0" encoding="utf-8"?>
<data>
<element>Fe</element>
<element>Cl</element>
<element>Br</element>
<element>I</element>
<element>Ni</element>
<element>H</element>
<element>Po</element>
<element>S</element>
<element>O</element>
</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">
<xsl:variable name="inRow" select="3"/>
<xsl:apply-templates select="//element[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="//element[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="//element[position() mod $inRow = 1]">
<xsl:with-param name="inRow" select="$inRow"/>
</xsl:apply-templates>
</TABLE>
</xsl:template>
<xsl:template match="element">
<xsl:param name="inRow"/>
<TR>
<TD>
<xsl:value-of select="."/>
</TD>
<xsl:apply-templates select="following::element[position() < $inRow]" mode="cell"/>
</TR>
</xsl:template>
<xsl:template match="element" mode="cell">
<xsl:param name="inRow"/>
<TD>
<xsl:value-of select="."/>
</TD>
</xsl:template>
</xsl:stylesheet>
Output:
<?xml version="1.0" encoding="UTF-8"?><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>
|
|
|