【问题标题】:Merge xml in PHP DOM在 PHP DOM 中合并 xml
【发布时间】:2011-05-10 07:38:09
【问题描述】:

我想将一个 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 是因为我希望避免递归调用出现问题。那么我做错了什么?感谢您的帮助!

【问题讨论】:

    标签: php xml dom merge


    【解决方案1】:

    如果要导入整个节点子树(而不仅仅是节点本身),则需要在importNode 中将 $deep 设置为 true

    $domDocument->importNode($node, true);
    

    【讨论】:

      猜你喜欢
      • 2016-10-26
      • 2018-07-06
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-07
      相关资源
      最近更新 更多