Как обнаружить и удалить ненужные атрибуты xmlns: <something> в PHP DOM?
Скажем, у меня есть такой исходный документ:
<element>
<subelement xmlns:someprefix="mynamespace"/>
</element>
xmlns:someprefix
очевидно, здесь не требуется и ничего не делает, так как этот префикс не используется в этом элементе (или в моем случае, в любом месте документа).
В PHP, после того как я загрузил это в дерево DOM с помощью DOMDocument-> loadXML (), я хотел бы иметь возможность обнаружить, что такое объявление пространства имен существует, и удалить его.
Я знаю, что могу читать это сhasAttribute()
и даже удалить его сremoveAttributeNS()
(странно) но только если я знаю его префикс. Не появляется вDOMNode->attributes
вообще, то, что я пытаюсь найти, не считается атрибутом. Я не вижу способа обнаружить, что он там есть, не зная префикса, кроме как сериализовать его обратно в строку XML и запустить регулярное выражение или что-то еще.
Как мне это сделать? Любой способ запросить, какие пространства имен (например, xmlns: что-то) были объявлены в элементе?