1--TEST-- 2Bug #47531 (No way of removing redundant xmlns: declarations) 3--EXTENSIONS-- 4dom 5--FILE-- 6<?php 7 8$doc = new DOMDocument; 9$doc->loadXML(<<<XML 10<container xmlns:foo="some:ns"> 11 <foo:first/> 12 <second> 13 <foo:child1/> 14 <foo:child2/> 15 <!-- comment --> 16 <child3> 17 <foo:child4/> 18 <foo:child5> 19 <p xmlns:foo="other:ns"> 20 <span foo:foo="bar"/> 21 <span foo:foo="bar"/> 22 </p> 23 <foo:child6 foo:foo="bar"> 24 <span foo:foo="bar"/> 25 <span foo:foo="bar"/> 26 </foo:child6> 27 </foo:child5> 28 </child3> 29 <child7 foo:foo="bar"> 30 <foo:child8/> 31 </child7> 32 </second> 33</container> 34XML); 35$root = $doc->documentElement; 36var_dump($root->removeAttribute("xmlns:foo")); 37echo $doc->saveXML(); 38 39?> 40--EXPECT-- 41bool(true) 42<?xml version="1.0"?> 43<container> 44 <foo:first xmlns:foo="some:ns"/> 45 <second> 46 <foo:child1 xmlns:foo="some:ns"/> 47 <foo:child2 xmlns:foo="some:ns"/> 48 <!-- comment --> 49 <child3> 50 <foo:child4 xmlns:foo="some:ns"/> 51 <foo:child5 xmlns:foo="some:ns"> 52 <p xmlns:foo="other:ns"> 53 <span foo:foo="bar"/> 54 <span foo:foo="bar"/> 55 </p> 56 <foo:child6 foo:foo="bar"> 57 <span foo:foo="bar"/> 58 <span foo:foo="bar"/> 59 </foo:child6> 60 </foo:child5> 61 </child3> 62 <child7 xmlns:foo="some:ns" foo:foo="bar"> 63 <foo:child8/> 64 </child7> 65 </second> 66</container> 67