Php 如何克隆节点并将其用作新DOMDocument的documentElement?
在PHP5中,我有一个DOMDocument(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
$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版本的东西。