Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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 如何在不删除引用的子项的情况下追加子项_Php_Dom - Fatal编程技术网

Php 如何在不删除引用的子项的情况下追加子项

Php 如何在不删除引用的子项的情况下追加子项,php,dom,Php,Dom,下面是我的xml示例。比如说: <Elements> <Element> <list>123</list> </Element> <Element> <list>456</list> </Element> </Elements> 但元素1的内容被删除。但是添加到元素2 有没有办法让元素1的内容停留在那里并添加到

下面是我的xml示例。比如说:

<Elements>
    <Element>
        <list>123</list>
    </Element>

    <Element>
        <list>456</list>
    </Element>
</Elements>
但元素1的内容被删除。但是添加到元素2


有没有办法让元素1的内容停留在那里并添加到元素2中?我也尝试将其附加到元素1,但这并不是我的代码必须遵循的方式。请帮忙(谢谢,cloneNode是一个不错的选择。例如:

element[1].appendChild(element[0].childNodes[0].cloneNode(true));

上述操作将获取元素节点列表中第一项的第一个子项,并将其作为子项附加到元素节点列表中的第二项,而无需将其从原始位置移除。

您可以发布您正在使用的代码吗?您可能只需调用附加元素上的cloneNode,以制作其副本,如:
element->item(0)->cloneNode(true);
我可以使用element->item(0)->cloneNode(element1);?传递到cloneNode的值只是一个布尔值,表示是否要在克隆中包含子节点。没有代码,我只是猜测要克隆哪个元素,但可以像
elementYouWantToClone->cloneNode(true)一样使用它所以你想克隆
element->item(1)
然后你会调用
element->item(1)->cloneNode(true)
。或者如果
element1
是一个DOMNode,
element1->cloneNode(true)
。我已经编辑了内容。谢谢。我现在正在尝试使用cloneNode。所以你的最后一行是
$element2->appenchild($element1->cloneNode(真))
。但是,这将复制
$element2
下的实际
$element1
。如果只需要
列表
节点,则需要遍历子节点并添加每个节点,或者执行相同的
getElementsByTagName
查找
列表
元素并追加每个元素。此示例为javascriptn注意到PHP,显然正在使用PHP DOMDocument类。
element[1].appendChild(element[0].childNodes[0].cloneNode(true));