English | 简体中文 | 繁體中文
查询

DOMParentNode::replaceChildren()函数—用法及示例

「 替换指定节点的所有子节点 」


函数名称:DOMParentNode::replaceChildren() 适用版本:PHP 8.0.0 及以上版本

用法: DOMParentNode::replaceChildren() 方法用于替换指定节点的所有子节点。

语法:

public DOMParentNode::replaceChildren ( DOMNode $newChild [, DOMNode $oldChild = NULL ] ) : void

参数:

  1. $newChild(必需):要插入的新节点。
  2. $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 扩展中的节点类(如 DOMDocumentDOMElement 等),不能直接在自定义类中使用。

补充纠错
热门PHP函数
分享链接