gpt4 book ai didi

php - 如何更改 DOM 中元素的名称?

转载 作者:可可西里 更新时间:2023-11-01 12:43:05 25 4
gpt4 key购买 nike

在带有 DOM 的 PHP 中,我有一个代表 元素的 DomElement 对象。

在一种情况下,我需要更改它,使其元素名称为 ,但保留相同的子元素和属性。

更改 DomElement 的元素名称并保留其子项和属性的最简单方法是什么?

编辑:我刚刚找到一个 very similar question (虽然它没有很好的答案)。

最佳答案

你能用importNode()吗?复制 <identity> 的子节点元素添加到新创建的 <person>元素?

function changeName($node, $name) {
$newnode = $node->ownerDocument->createElement($name);
foreach ($node->childNodes as $child){
$child = $node->ownerDocument->importNode($child, true);
$newnode->appendChild($child, true);
}
foreach ($node->attributes as $attrName => $attrNode) {
$newnode->setAttribute($attrName, $attrNode);
}
$newnode->ownerDocument->replaceChild($newnode, $node);
return $newnode;
}

$domElement = changeName($domElement, 'person');

也许类似的方法可行,或者您可以尝试使用 cloneChild() .

编辑:其实,我只是意识到原来的功能会丢失节点的位置。根据 thomasrutter 链接的问题,replaceChild()应该使用。

关于php - 如何更改 DOM 中元素的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/775904/

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