Como detectar e remover atributos xmlns: <something> desnecessários no DOM do PHP?

Digamos que eu tenha um documento de origem como este:

<element>
  <subelement xmlns:someprefix="mynamespace"/>
</element>

oxmlns:someprefix obviamente não é necessário aqui e não faz nada, pois esse prefixo não está sendo usado nesse elemento (ou no meu caso, em qualquer lugar do documento).

No PHP, depois de carregar isso em uma árvore DOM com DOMDocument-> loadXML (), eu gostaria de poder detectar a existência dessa declaração de namespace e removê-la.

Eu sei que posso ler comhasAttribute() e até removê-lo comremoveAttributeNS() (estranhamente), mas apenas se eu souber o seu prefixo. Não aparece emDOMNode->attributes de maneira alguma, pois o que estou tentando encontrar não é considerado um atributo. Não consigo ver nenhuma maneira de detectar que ele está lá sem conhecer o prefixo, além de serializá-lo novamente em uma string XML e executar um regex ou algo assim.

Como eu posso fazer isso? Alguma maneira de consultar quais namespaces (por exemplo, xmlns: alguma coisa) foram declarados em um elemento?

questionAnswers(1)

yourAnswerToTheQuestion