punto 1

<xsl:template match="/">
<xsl:element name="html">
<xsl:element name="head"/>
<xsl:element name="body"/>
</xsl:element>
<xsl:apply-templates/>
</xsl:template>

Punto 2
<xsl:template match="/*/c">
<xsl:element name="<h1>">
<xsl:value-of select="text()"/>
</xsl:element>
</xsl:template>
Punto 3
<xsl:template match="/*/d">
<xsl:element name="div">
<xsl:attribute name="align">
<xsl:value-of select="center"/>
</xsl:attribute>
</xsl:element>
<xsl:apply-templates/>
</xsl:template>

Punto 4

<xsl:template match="/*/*/e">
<xsl:element name="<p>">
<xsl:element name="<span>">
<xsl:attribute name="class">
<xsl:value-of select="name()"/>
</xsl:attribute>
</xsl:element>
</xsl:element>
<xsl:apply-templates/>
</xsl:template>

Punto 5

<xsl:template match="a">
<xsl:element name="<div>">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>

Punto 6

<xsl:template match="b">
<xsl:element name="<span>">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>


Punto 7

<xsl:template match="*"/>

Punto 8 ?