Thanks, Mukul! It works great! :)
Please try this XSL -
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<table>
<xsl:for-each select="catalog/cd">
<tr>
<td>
<xsl:apply-templates select="artist"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="artist">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="tab">
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="*[(name() != 'artist') and
(name() != 'tab')]">
<xsl:element name="{name()}">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
</xsl:stylesheet>