名前空間を削除する方法はまったく知っていますが、特定の名前空間プレフィックスを削除するだけで済みます。たとえば、このファイルを変換します (xenc プレフィックスを削除します)。
<?xml version="1.0" encoding="UTF-8"?>
<xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
</xenc:EncryptedKey>
<ds:X509Data>
<ds:X509Certificate>AAA=</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
これに:
<?xml version="1.0" encoding="UTF-8"?>
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
</EncryptedKey>
<ds:X509Data>
<ds:X509Certificate>AAA=</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
XSLT を使用してそれを行う方法を教えてください。