函数名称:DOMParentNode::replaceChildren() 适用版本:PHP 8.0.0 及以上版本
用法: DOMParentNode::replaceChildren() 方法用于替换指定节点的所有子节点。
语法:
public DOMParentNode::replaceChildren ( DOMNode $newChild [, DOMNode $oldChild = NULL ] ) : void
参数:
$newChild
(必需):要插入的新节点。$oldChild
(可选):要替换的现有子节点。
示例: 假设我们有一个包含以下 HTML 代码的文件:
<html>
<body>
<div id="myDiv">
<p>原始内容</p>
</div>
</body>
</html>
现在,我们想要用一个新的 <h1>
标签替换 <p>
标签。可以使用 DOMDocument
类来实现:
// 创建一个新的 DOMDocument 对象
$dom = new DOMDocument();
// 加载 HTML 文件
$dom->loadHTMLFile('path/to/file.html');
// 获取 #myDiv 元素
$myDiv = $dom->getElementById('myDiv');
// 创建一个新的 <h1> 标签
$h1 = $dom->createElement('h1', '替换后的内容');
// 替换 <p> 标签
$myDiv->replaceChildren($h1, $myDiv->getElementsByTagName('p')->item(0));
// 输出修改后的 HTML
echo $dom->saveHTML();
此示例中,我们使用 DOMDocument
对象加载 HTML 文件,并获取了指定 ID 为 "myDiv" 的元素。然后,我们使用 createElement()
方法创建了一个新的 <h1>
标签,并使用 replaceChildren()
方法将新的 <h1>
标签替换了原来的 <p>
标签。最后,使用 saveHTML()
方法输出修改后的 HTML。
输出结果:
<html>
<body>
<div id="myDiv">
<h1>替换后的内容</h1>
</div>
</body>
</html>
注意:DOMParentNode::replaceChildren()
方法只适用于 DOM 扩展中的节点类(如 DOMDocument
、DOMElement
等),不能直接在自定义类中使用。