<xsl:template match="ErrorDetail">
Default for the root would be to apply templates and would hit this one as a child of root, I think.<xsl:template match="/*/ErrorDetail">
But if I were you, I wouldn't want the headers in between the rows <s>. So the proper answer is probably to apply one template to the root and then use one apply-templates to get at your details. <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <head> <title>Amex Commercial Error Log</title> </head> <body> <TABLE id="Table1" height="588" cellSpacing="1" cellPadding="1" width="971" border="1"> <TR> <TD width="249" bgColor="#003399" height="27"> <P><FONT face="Tahoma" color="#ffffff"><STRONG>Time</STRONG></FONT></P> </TD> <TD width="213" bgColor="#003399" height="27"> <P><FONT face="Tahoma" color="#ffffff"><STRONG>Message</STRONG></FONT></P> </TD> <TD width="142" bgColor="#003399" height="27"> <P><FONT face="Tahoma" color="#ffffff"><STRONG>Error Type</STRONG></FONT></P> </TD> <TD width="259" bgColor="#003399" height="27"> <P><FONT face="Tahoma" color="#ffffff"><STRONG>Module</STRONG></FONT></P> </TD> <TD bgColor="#003399" height="27"> <P><FONT face="Tahoma" color="#ffffff"><STRONG>Call Stack</STRONG></FONT></P> </TD> </TR> <xsl:apply-templates /> </TABLE> </body> </xsl:template> <xsl:template match="ErrorDetail"> <TR> <TD width="249" height="103"><xsl:value-of select="Time"/></TD> <TD width="213" height="103"><xsl:value-of select="Message"/></TD> <TD width="142" height="103"><xsl:value-of select="Type"/></TD> <TD width="259" height="103"><xsl:value-of select="Site"/></TD> <TD height="103"><xsl:value-of select="Trace"/></TD> </TR> </xsl:template> </xsl:stylesheet>-----------