Как обнаружить и удалить ненужные атрибуты xmlns: <something> в PHP DOM?

Скажем, у меня есть такой исходный документ:

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

xmlns:someprefix очевидно, здесь не требуется и ничего не делает, так как этот префикс не используется в этом элементе (или в моем случае, в любом месте документа).

В PHP, после того как я загрузил это в дерево DOM с помощью DOMDocument-> loadXML (), я хотел бы иметь возможность обнаружить, что такое объявление пространства имен существует, и удалить его.

Я знаю, что могу читать это сhasAttribute() и даже удалить его сremoveAttributeNS() (странно) но только если я знаю его префикс. Не появляется вDOMNode->attributes вообще, то, что я пытаюсь найти, не считается атрибутом. Я не вижу способа обнаружить, что он там есть, не зная префикса, кроме как сериализовать его обратно в строку XML и запустить регулярное выражение или что-то еще.

Как мне это сделать? Любой способ запросить, какие пространства имен (например, xmlns: что-то) были объявлены в элементе?

Ответы на вопрос(1)

Ваш ответ на вопрос