Это преобразование :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="to">
<desc>
<xsl:copy-of select=".|../from"/>
</desc>
</xsl:template>
<xsl:template match="mtype/text()">nothing</xsl:template>
<xsl:template match="from"/>
</xsl:stylesheet>
при применении к предоставленному XML-документу, восстановленному из рисунка (Никогда больше так не делать!):
<m2>
<header>
<to>ggg</to>
<from>aaa</from>
<id>11</id>
<name>gd</name>
<mtype>me</mtype>
</header>
<body>some text</body>
</m2>
дает желаемый результат :
<m2>
<header>
<desc>
<to>ggg</to>
<from>aaa</from>
</desc>
<id>11</id>
<name>gd</name>
<mtype>nothing</mtype>
</header>
<body>some text</body>
</m2>
Объяснение : Простое применение шаблона разработки правил идентификации. Использование и переопределение шаблона идентификации является наиболее фундаментальным и мощным шаблоном проектирования XSLT.
См. Примеры и пояснения по адресу: http://dpawson.co.uk/xsl/sect2/identity.html