 <p><strong>Just this</strong>:</p> <pre><code>&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:x="http://www.w3.org/1999/xhtml" exclude-result-prefixes="x"&gt; &lt;xsl:output omit-xml-declaration="yes" indent="yes"/&gt; &lt;xsl:strip-space elements="*"/&gt; &lt;xsl:template match="/*"&gt; &lt;document&gt; &lt;xsl:apply-templates/&gt; &lt;/document&gt; &lt;/xsl:template&gt; &lt;xsl:template match="x:div"&gt; &lt;section&gt;&lt;xsl:apply-templates/&gt;&lt;/section&gt; &lt;/xsl:template&gt; &lt;xsl:template match="x:p"&gt; &lt;paragraph&gt;&lt;xsl:apply-templates/&gt;&lt;/paragraph&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p><strong>When this transformation is applied on the provided XML document:</strong></p> <pre><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;title/&gt; &lt;meta/&gt; &lt;/head&gt; &lt;body link="#000000" bgcolor="#FFFFFF" leftmargin="0"&gt; &lt;div&gt; &lt;p&gt;Here is a paragraph&lt;/p&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p><strong>the wanted, correct result is produced</strong>:</p> <pre><code>&lt;document&gt; &lt;section&gt; &lt;paragraph&gt;Here is a paragraph&lt;/paragraph&gt; &lt;/section&gt; &lt;/document&gt; </code></pre>