File: Document_createElementNS.phpt

package info (click to toggle)
php8.4 8.4.11-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 208,108 kB
  • sloc: ansic: 1,060,628; php: 35,345; sh: 11,866; cpp: 7,201; pascal: 4,913; javascript: 3,091; asm: 2,810; yacc: 2,411; makefile: 689; xml: 446; python: 301; awk: 148
file content (96 lines) | stat: -rw-r--r-- 2,654 bytes parent folder | download
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
--TEST--
Document::createElementNS()
--EXTENSIONS--
dom
--FILE--
<?php

require __DIR__ . "/element_dump.inc";
require __DIR__ . "/create_element_util.inc";

echo "--- Normal cases ---\n";

$dom = Dom\HTMLDocument::createEmpty();
$elements = [];

$elements[] = createElementNS($dom, NULL, "qname", "&hello");
$elements[] = createElementNS($dom, "urn:foo", "foo:bar", "&hello");
$elements[] = createElementNS($dom, "urn:foo", "bar:BAR", "&hello");
$elements[] = createElementNS($dom, "urn:foo", "bar:BAR", "&hello");
$elements[] = createElementNS($dom, "http://www.w3.org/2000/xmlns/", "xmlns", "&hello");
$elements[] = createElementNS($dom, "http://www.w3.org/XML/1998/namespace", "xml", "&hello");

foreach ($elements as $element) {
    dumpElement($element);
}

echo "--- Error cases ---\n";

function testError($dom, $namespaceURI, $qualifiedName)
{
    $ns_readable = is_null($namespaceURI) ? "NULL" : "\"$namespaceURI\"";
    echo "($ns_readable, \"$qualifiedName\"): ";
    try {
        $dom->createElementNS($namespaceURI, $qualifiedName);
    } catch (DOMException $e) {
        echo $e->getMessage(), "\n";
    }
}

testError($dom, NULL, "prefix:name");
testError($dom, "", "prefix:name");
testError($dom, "urn:foo", "@");
testError($dom, "http://www.w3.org/2000/xmlns/", "svg");
testError($dom, "urn:foo", "xml:xml");

?>
--EXPECT--
--- Normal cases ---
tagName: string(5) "qname"
nodeName: string(5) "qname"
textContent: string(6) "&hello"
prefix: NULL
namespaceURI: NULL
<qname>&amp;hello</qname>

tagName: string(7) "foo:bar"
nodeName: string(7) "foo:bar"
textContent: string(6) "&hello"
prefix: string(3) "foo"
namespaceURI: string(7) "urn:foo"
<foo:bar>&amp;hello</foo:bar>

tagName: string(7) "bar:BAR"
nodeName: string(7) "bar:BAR"
textContent: string(6) "&hello"
prefix: string(3) "bar"
namespaceURI: string(7) "urn:foo"
<bar:BAR>&amp;hello</bar:BAR>

tagName: string(7) "bar:BAR"
nodeName: string(7) "bar:BAR"
textContent: string(6) "&hello"
prefix: string(3) "bar"
namespaceURI: string(7) "urn:foo"
<bar:BAR>&amp;hello</bar:BAR>

tagName: string(5) "xmlns"
nodeName: string(5) "xmlns"
textContent: string(6) "&hello"
prefix: NULL
namespaceURI: string(29) "http://www.w3.org/2000/xmlns/"
<xmlns>&amp;hello</xmlns>

tagName: string(3) "xml"
nodeName: string(3) "xml"
textContent: string(6) "&hello"
prefix: NULL
namespaceURI: string(36) "http://www.w3.org/XML/1998/namespace"
<xml>&amp;hello</xml>

--- Error cases ---
(NULL, "prefix:name"): Namespace Error
("", "prefix:name"): Namespace Error
("urn:foo", "@"): Invalid Character Error
("http://www.w3.org/2000/xmlns/", "svg"): Namespace Error
("urn:foo", "xml:xml"): Namespace Error