Я хочу объединить PHP DOMDocument в другой ..
//this creates the DOM which will be imported function element_index(..) { $skrit=new DOMDocument(); $skrit->loadXML('<krits:kriti xmlns:krits="http://test.de/krits">..</krits:kriti>'); return $skrit; } function crawl_xml($element) { //thats the line where to get the result and merge $skrit=element_index(..); $temp3=$skrit->documentElement->cloneNode(true); $element->appendChild($xpIn->importNode($temp3)); } //thats how i start the recurisve walking through Nodes $xpIn = new DOMDocument(); crawl_xml($xpIn->firstChild);
Ввод / вывод должен выглядеть так:
<!--input--> <all><one/></all> <!--input new to add--> <krits:kriti xmlns:krits="http://test.de/krits">..</krits:kriti> <!--ouput--> <all><krits:kriti xmlns:krits="http://test.de/krits">..</krits:kriti><one><krits:kriti xmlns:krits="http://test.de/krits">..</krits:kriti></one></all>
Может быть, importNode может быть не очень хорошим выбором? Я использовал cloneNode, потому что надеялся избежать проблем с рекурсивным вызовом. Так что я делаю не так? Спасибо за вашу помощь!
Если вы хотите импортировать все поддерево узла (а не только сам узел), вам нужно установить $ deep в true в importNode:
importNode
$domDocument->importNode($node, true);