【问题标题】:DOMDocument - merge elements into one XMLDOMDocument - 将元素合并为一个 XML
【发布时间】:2020-02-20 09:20:35
【问题描述】:

试图将根和正文合并到一个 XML 中。 这两个元素在创建时被拆分的原因是因为它们将被预先构建并存在于不同的文件中,因此被加载。

我的代码:

<?php


$root = new DOMDocument();
$root->loadXML('<root/>');

$body = new DOMDocument();
$body->loadXML('<body/>');

foreach ($body->documentElement->childNodes as $child) {
  $body->documentElement->appendChild(
    $body->importNode($child, TRUE)
  );
}

echo $body->saveXML();

想要的结果:

<?xml version="1.0"?>
<root>
<body/>
</root>

【问题讨论】:

    标签: xml domdocument php-7.3


    【解决方案1】:

    $body-&gt;documentElement-&gt;childNodes-&gt;length 的长度为 0,因为 &lt;body/&gt; 没有子节点

    当您想将$body 导入$root 时,您应该附加子节点并使用根而不是子节点导入节点。

    例如

    $root = new DOMDocument();
    $root->loadXML('<root/>');
    
    $body = new DOMDocument();
    $body->loadXML('<body/>');
    
    foreach ($body->childNodes as $child) {
        $root->documentElement->appendChild(
            $root->importNode($child, TRUE)
        );
    }
    
    echo $root->saveXML();
    

    输出

    <?xml version="1.0"?>
    <root><body/></root>
    

    Php demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多