Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何克隆节点并将其用作新DOMDocument的documentElement?_Php_Dom - Fatal编程技术网

Php 如何克隆节点并将其用作新DOMDocument的documentElement?

Php 如何克隆节点并将其用作新DOMDocument的documentElement?,php,dom,Php,Dom,在PHP5中,我有一个DOMDocument($xmlDoc1)。假设它的documentElement是:。我创建了一个新的DOMDocument$xmlDoc2 我需要做的是克隆$xmlDoc1的documentElement(带属性但不带子元素),并将其用作$xmlDoc2的documentElement 在ASP中,您可以编写: XMLDoc2.DocumentElement = XMLDoc1.DocumentElement.CloneNode(False) PHP DOM有一个cl

在PHP5中,我有一个DOMDocument(
$xmlDoc1
)。假设它的documentElement是:
。我创建了一个新的DOMDocument
$xmlDoc2

我需要做的是克隆
$xmlDoc1
的documentElement(带属性但不带子元素),并将其用作
$xmlDoc2
的documentElement

在ASP中,您可以编写:

XMLDoc2.DocumentElement = XMLDoc1.DocumentElement.CloneNode(False)
PHP DOM有一个
cloneNode()
方法,但不允许将克隆节点附加到另一个文档中

我该怎么做呢?

看看:

例如:

<?php
$dom = new DomDocument();
$dom->loadXml('<root attr1="a" attr2="b"><foo></foo></root>');

$dom2 = new DomDocument();
$dom2->appendChild(
    $dom2->importNode($dom->documentElement->cloneNode(false), true) 
);

header('Content-Type: text/xml; charset="UTF-8"');
echo $dom2->saveXml();
appendChild(
$dom2->importNode($dom->documentElement->cloneNode(false),true)
);
标题('Content-Type:text/xml;charset=“UTF-8”);
echo$dom2->saveXml();
执行:


谢谢,就这样(我没有快速浏览文档)。虽然没有100%解决:属性没有被复制。它在您的示例中起作用,所以我将检查我的代码。再次感谢。请参阅更新的示例。它在我的测试机器上运行,可能是一些php版本的东西。