1--TEST--
2Cloning a whole document
3--EXTENSIONS--
4dom
5--FILE--
6<?php
7
8$dom = DOM\XMLDocument::createFromString(<<<XML
9<?xml version="1.0" encoding="UTF-8"?>
10<!DOCTYPE root [
11    <!ELEMENT child (#PCDATA)>
12    <!ELEMENT child2 (#PCDATA)>
13    <!ENTITY foo "bar">
14]>
15<root xmlns:a="urn:a" a:foo="bar">
16    afoob
17    <child>
18        <![CDATA[c]]>
19    </child>
20    <child2>&foo;</child2>
21</root>
22XML);
23
24echo "---\n";
25
26var_dump($dom->getElementsByTagName("child2")[0]->firstChild->nodeName);
27
28echo "---\n";
29
30$clone = clone $dom;
31echo $clone->saveXML(), "\n";
32
33var_dump($clone->getElementsByTagName("child2")[0]->firstChild->nodeName);
34
35echo "---\n";
36
37$clone = $dom->cloneNode(false);
38echo $clone->saveXML(), "\n";
39
40echo "---\n";
41
42$clone = $dom->documentElement->cloneNode(false);
43echo $clone->ownerDocument->saveXML($clone), "\n";
44
45?>
46--EXPECT--
47---
48string(3) "foo"
49---
50<?xml version="1.0" encoding="UTF-8"?>
51<!DOCTYPE root [
52<!ELEMENT child (#PCDATA)>
53<!ELEMENT child2 (#PCDATA)>
54<!ENTITY foo "bar">
55]>
56<root xmlns:a="urn:a" a:foo="bar">
57    afoob
58    <child>
59        <![CDATA[c]]>
60    </child>
61    <child2>&foo;</child2>
62</root>
63string(3) "foo"
64---
65<?xml version="1.0" encoding="UTF-8"?>
66
67---
68<root xmlns:a="urn:a" a:foo="bar"/>
69