From: Rob Richards Date: Tue, 7 Apr 2009 15:31:15 +0000 (+0000) Subject: fix bug #47849 (Non-deep import loses the namespace) X-Git-Tag: php-5.4.0alpha1~191^2~3961 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=408a1746a10cb35bcee403458f87d762ab7aeb0f;p=php fix bug #47849 (Non-deep import loses the namespace) add test --- diff --git a/ext/dom/document.c b/ext/dom/document.c index 44d8e3c041..7390ba57b8 100644 --- a/ext/dom/document.c +++ b/ext/dom/document.c @@ -1198,6 +1198,9 @@ PHP_FUNCTION(dom_document_import_node) if (nodep->doc == docp) { retnodep = nodep; } else { + if ((recursive == 0) && (nodep->type == XML_ELEMENT_NODE)) { + recursive = 2; + } retnodep = xmlDocCopyNode(nodep, docp, recursive); if (!retnodep) { RETURN_FALSE; diff --git a/ext/dom/tests/bug47849.phpt b/ext/dom/tests/bug47849.phpt new file mode 100644 index 0000000000..7e6b02c8cf --- /dev/null +++ b/ext/dom/tests/bug47849.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #47849 (Non-deep import loses the namespace). +--SKIPIF-- + +--FILE-- +appendChild($aDOM->createElementNS('urn::root','r:root')); + +$fromdom= new DOMDocument(); +$fromdom->loadXML('aaa'); + +$data= $fromdom->documentElement; +$aDOM->documentElement->appendChild($aDOM->importNode($data)); + +echo $aDOM->saveXML(); + +?> +--EXPECT-- + +