Во-первых, остановитесь и подумайте, действительно ли вам следует удалять пространства имен из вашего XML. Пространства имен XML играют важную роль в управлении словарем. Несмотря на то, что они вносят некоторые сложности, возможность управлять словарями XML является большим преимуществом, и его нельзя победить без единой причины.
Механически, да, XSLT является идеальным инструментом для отображения из одного XML-документа в другой и может легко удалять элементы из пространств имен ...
Просто адаптируйте преобразование идентификации для копирования всех узлов как есть, кроме специально обработанных элементов, удалив их из любого пространства имен:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|processing-instruction()|comment()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>