1--TEST-- 2Dom\Element::setAttributeNode(NS) adopting from another document 3--EXTENSIONS-- 4dom 5--FILE-- 6<?php 7 8$dom1 = Dom\HTMLDocument::createEmpty(); 9$container = $dom1->appendChild($dom1->createElement("container")); 10 11echo "--- Without namespace ---\n"; 12 13$dom2 = Dom\HTMLDocument::createEmpty(); 14$attr = $dom2->createAttribute("my-attribute"); 15$attr->value = "1"; 16 17$container->setAttributeNode($attr); 18var_dump($attr->ownerDocument === $dom1); 19 20// Should not cause problems 21unset($dom2); 22unset($attr); 23 24echo "--- With namespace ---\n"; 25 26$dom2 = Dom\HTMLDocument::createEmpty(); 27$attr2 = $dom2->createAttributeNS("urn:a", "a:my-attribute"); 28$attr2->value = "2"; 29$dom1->documentElement->setAttributeNode($attr2); 30 31$dom2 = Dom\HTMLDocument::createEmpty(); 32$attr3 = $dom2->createAttributeNS("urn:b", "a:my-attribute"); 33$attr3->value = "3"; 34$dom1->documentElement->setAttributeNode($attr3); 35 36var_dump($attr2->prefix, $attr2->namespaceURI, $attr2->localName); 37var_dump($attr3->prefix, $attr3->namespaceURI, $attr3->localName); 38 39echo "--- Resulting document ---\n"; 40 41echo $dom1->saveHtml(), "\n"; 42 43?> 44--EXPECT-- 45--- Without namespace --- 46bool(true) 47--- With namespace --- 48string(1) "a" 49string(5) "urn:a" 50string(12) "my-attribute" 51string(1) "a" 52string(5) "urn:b" 53string(12) "my-attribute" 54--- Resulting document --- 55<container my-attribute="1" a:my-attribute="2" a:my-attribute="3"></container> 56