xref: /PHP-8.4/ext/dom/tests/bug34276.phpt (revision bd9f4fa6)
1--TEST--
2Bug #34276 (setAttributeNS and default namespace)
3--EXTENSIONS--
4dom
5--FILE--
6<?php
7$xml = <<<HERE
8<?xml version="1.0" encoding="ISO-8859-1" ?>
9<foo xmlns="http://www.example.com/ns/foo"
10     xmlns:fubar="http://www.example.com/ns/fubar" attra="attra" />
11HERE;
12
13function dump($elems) {
14    foreach ($elems as $elem) {
15        var_dump($elem->nodeName);
16        dump($elem->childNodes);
17    }
18}
19
20$dom = new DOMDocument();
21$dom->loadXML($xml);
22$foo = $dom->documentElement;
23var_dump($foo->hasAttributeNS('http://www.example.com/ns/foo', 'attra'));
24var_dump($foo->getAttributeNS('http://www.example.com/ns/foo', 'attra'));
25
26$foo->setAttributeNS('http://www.example.com/ns/foo', 'attra', 'attranew');
27$foo->setAttributeNS('http://www.example.com/ns/fubar', 'attrb', 'attrbnew');
28$foo->setAttributeNS('http://www.example.com/ns/foo', 'attrc', 'attrc');
29
30var_dump($foo->getAttributeNS('http://www.example.com/ns/foo', 'attra'));
31var_dump($foo->getAttributeNS('http://www.example.com/ns/fubar', 'attrb'));
32var_dump($foo->getAttributeNS('http://www.example.com/ns/foo', 'attrc'));
33
34print $dom->saveXML();
35?>
36--EXPECT--
37bool(false)
38string(0) ""
39string(8) "attranew"
40string(8) "attrbnew"
41string(5) "attrc"
42<?xml version="1.0" encoding="ISO-8859-1"?>
43<foo xmlns="http://www.example.com/ns/foo" xmlns:fubar="http://www.example.com/ns/fubar" xmlns:default="http://www.example.com/ns/foo" attra="attra" default:attra="attranew" fubar:attrb="attrbnew" default:attrc="attrc"/>
44