gpt4 book ai didi

PHP - 使用简单 XML 复制 XML 节点

转载 作者:行者123 更新时间:2023-12-04 14:28:59 26 4
gpt4 key购买 nike

我需要使用 Simple XML 加载 XML 源,复制一个现有节点及其所有子节点,然后在呈现 XML 之前自定义这个新节点的属性。有什么建议吗?

最佳答案

SimpleXML 不能这样做,所以你必须使用 DOM .好消息是 DOM 和 SimpleXML 是同一个硬币 libxml 的两个方面。因此,无论您使用 SimpleXML 还是 DOM,您都在处理同一棵树。下面是一个例子:

$thing = simplexml_load_string(
'<thing>
<node n="1"><child/></node>
</thing>'
);

$dom_thing = dom_import_simplexml($thing);
$dom_node = dom_import_simplexml($thing->node);
$dom_new = $dom_thing->appendChild($dom_node->cloneNode(true));

$new_node = simplexml_import_dom($dom_new);
$new_node['n'] = 2;

echo $thing->asXML();

如果你经常做这种事情,你可以试试 SimpleDOM ,它是 SimpleXML 的扩展,它允许您直接使用 DOM 的方法,而无需在 DOM 对象之间进行转换。
include 'SimpleDOM.php';
$thing = simpledom_load_string(
'<thing>
<node n="1"><child/></node>
</thing>'
);

$new = $thing->appendChild($thing->node->cloneNode(true));
$new['n'] = 2;

echo $thing->asXML();

关于PHP - 使用简单 XML 复制 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2356144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com