xref: /PHP-8.3/ext/dom/tests/bug47531_a.phpt (revision f9a24969)
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