Note that this function will remove the node from the original XML document(PHP >= 8.3)
DOMDocument::adoptNode β ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΡΠ·Π΅Π» ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΡΠ·Π΅Π» Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΡΠ΅ΠΊΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
nodeΠ£Π·Π΅Π» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ·Π΅Π», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠ½ ΠΈΠ»ΠΈ false Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ DOMException ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ:
DOM_NOT_SUPPORTED_ERRΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΠΏ ΡΠ·Π»Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° DOMDocument::adoptNode()
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° hello ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ.
<?php
$doc1 = new DOMDocument;
$doc1->loadXML("<container><hello><world/></hello></container>");
$hello = $doc1->documentElement->firstChild;
$doc2 = new DOMDocument;
$doc2->loadXML("<root/>");
$doc2->documentElement->appendChild($doc2->adoptNode($hello));
echo $doc1->saveXML() . PHP_EOL . PHP_EOL;
echo $doc2->saveXML();
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
<?xml version="1.0"?> <container/> <?xml version="1.0"?> <root><hello><world/></hello></root>