1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
--TEST--
Element::setAttributeNS()
--EXTENSIONS--
dom
--FILE--
<?php
require __DIR__ . "/dump_attr.inc";
$dom = Dom\HTMLDocument::createEmpty();
$container = $dom->appendChild($dom->createElement("container"));
echo "--- xmlns attribute ---\n";
$container->setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:foo", "1");
echo $dom->saveHtml($container), "\n";
dumpAttrs($container);
echo "--- name validation ---\n";
try {
$container->setAttributeNS("urn:a", "a:b:c", "");
} catch (DOMException $e) {
echo $e->getMessage(), "\n";
}
echo "--- ns attributes with same namespace but different prefix ---\n";
$dom = Dom\HTMLDocument::createEmpty();
$container = $dom->appendChild($dom->createElement("container"));
$container->setAttributeNS("urn:a", "x:foo", "1");
$container->setAttributeNS("urn:a", "y:foo", "2");
echo $dom->saveHtml($container), "\n";
dumpAttrs($container);
echo "--- ns attributes with different namespace but same prefix ---\n";
$dom = Dom\HTMLDocument::createEmpty();
$container = $dom->appendChild($dom->createElement("container"));
$container->setAttributeNS("urn:a", "x:foo", "1");
$container->setAttributeNS("urn:b", "x:foo", "2");
echo $dom->saveHtml($container), "\n";
dumpAttrs($container);
?>
--EXPECT--
--- xmlns attribute ---
<container xmlns:foo="1"></container>
Attr: xmlns:foo
string(5) "xmlns"
string(9) "xmlns:foo"
string(29) "http://www.w3.org/2000/xmlns/"
--- name validation ---
Invalid Character Error
--- ns attributes with same namespace but different prefix ---
<container y:foo="2"></container>
Attr: y:foo
string(1) "y"
string(5) "y:foo"
string(5) "urn:a"
--- ns attributes with different namespace but same prefix ---
<container x:foo="1" x:foo="2"></container>
Attr: x:foo
string(1) "x"
string(5) "x:foo"
string(5) "urn:a"
Attr: x:foo
string(1) "x"
string(5) "x:foo"
string(5) "urn:b"
|