File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <provinces> <province id="AB"> <name>Alberta</name> <abbreviation>AB</abbreviation> </province> <province id="BC"> <name>British Columbia</name> <abbreviation>BC</abbreviation> </province> </provinces> 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:output method="html" /> <xsl:output doctype-system="http://www.w3.org/TR/html4/strict.dtd" /> <xsl:output doctype-public="-//W3C//DTD HTML 4.01//EN" /> <xsl:template match="provinces"> <html> <head> <title>Provinces of Canada and Abbreviations</title> </head> <body> <h3> Provinces of Canada and Abbreviations </h3> <table> <thead> <tr> <td>Province</th> <td>Abbreviation</th> </tr> </thead> <tbody align="center"> <xsl:apply-templates select="province" /> </tbody> </table> </body> </html> </xsl:template> <xsl:template match="province"> <tr> <xsl:apply-templates select="name|abbreviation" /> </tr> </xsl:template> <xsl:template match="name|abbreviation"> <td> <xsl:apply-templates /> </td> </xsl:template> </xsl:stylesheet> Output: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Provinces of Canada and Abbreviations</title> </head> <body> <h3> Provinces of Canada and Abbreviations </h3> <table> <thead> <tr> <td>Province</th> <td>Abbreviation</th> </tr> </thead> <tbody align="center"> <tr> <td>Alberta</td> <td>AB</td> </tr> <tr> <td>British Columbia</td> <td>BC</td> </tr> </tbody> </table> </body> </html>