Это преобразование:
<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="/*">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/t/*[not(self::Channels)]"/>
</xsl:stylesheet>
при применении к предоставленному документу XML (исправлено, чтобы быть правильно оформленным):
<t>
<Regions>
<Region>
<Code>AU</Code>
<Name>Austria</Name>
</Region>
</Regions>
<Channels>
<Channel>
<Code>00</Code>
<Name>Im a channel</Name>
</Channel>
</Channels>
<Programs>
<Program>
<Code>00</Code>
<Name>Program</Name>
</Program>
</Programs>
</t>
дает желаемый, правильный результат:
<Channels>
<Channel>
<Code>00</Code>
<Name>Im a channel</Name>
</Channel>
</Channels>
Объяснение
Использование правила идентификации , переопределенного для верхнего элемента (сквозного) и для любых не Channels
дочерних элементов верхнего элемента (удалить).