したがって、これは機能しません。
foreach ($element->attributes as $attribute) {
$element->removeAttribute($attribute->name);
}
ノードに2つの属性がある場合、最初の属性のみが削除されます。
DOMNamedNodeMapのクローンを作成しようとしましたが、成功しませんでした。
$attributesCopy = clone $element->attributes;
foreach ($attributesCopy as $attribute) {
$element->removeAttribute($attribute->name);
}
それでも最初の属性のみを削除します。
この問題はここで説明されています:http://php.net/manual/en/class.domnamednodemap.php どうやらそれは機能であり、バグではありません。しかし、コメントで言及されている解決策はありません。