Developing XSLT-based Applications in ASP.NET 2.0 - Transforming XML data to HTML tables using XSLT
(Page 6 of 7 )
Since we are now a bit more familiar with templates, let us go for a practical example. I would like to display employee information in the form of an HTML table (by using only templates). The following code achieves the same:
<?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:apply-templates select="SQLData/Rows" />
</table>
</xsl:template>
<xsl:template match="SQLData/Rows">
<tr>
<td><xsl:value-of select="EmployeeID"/> </td>
<td><xsl:apply-templates select="FirstName" /></td>
</tr>
</xsl:template>
<xsl:template match="FirstName">
<b>
<xsl:value-of select="."/>
</b>
</xsl:template>
</xsl:stylesheet>
In the root tag, I am simply emitting a TABLE tag. In the “Rows” template, I am emitting TR and TD tags. The TD tags will be filled with the values extracted using “xsl:value-of.”
Is there any possibility of achieving this without using templates at all? Yes. You can still do it. Go through the following example:
<?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 width="50%" cellspacing="0" cellpadding="0" style="font-
family:verdana;font-size:X-Small" border="1">
<tr bgcolor="#336699">
<th align="left">
<font color="White">EmployeeID</font>
</th>
<th align="right">
<font color="White">FirstName</font>
</th>
</tr>
<xsl:for-each select="SQLData/Rows">
<tr>
<td align="left">
<xsl:value-
of select="EmployeeID" />
</td>
<td align="right">
<xsl:value-
of select="FirstName" />
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
The above is only for your understanding. My upcoming articles will explain these new concepts in a detailed fashion.
Next: Parsing through previous and next siblings using XSLT >>
More ASP.NET Articles
More By Jagadish Chaterjee