函数名:replaceWith()
适用版本:PHP 7.2.0 及以上版本(需要启用 DOM 扩展)
用法:DOMCharacterData::replaceWith() 函数用于替换当前 DOMCharacterData 节点的内容。该函数接受一个变量作为参数,在替换时将其转换为文本节点或者 DOMText 对象。
示例代码:
$dom = new DOMDocument();
$dom->loadXML("<root><text>Hello world!</text></root>");
$textNode = $dom->getElementsByTagName('text')->item(0);
$textNode->firstChild->replaceWith("New content");
echo $dom->saveXML();
输出结果:
<root><text>New content</text></root>
解释:
- 首先创建一个 DOMDocument 对象,并加载一个包含
<text>
节点的 XML。 - 通过 getElementsByTagName() 方法获取
<text>
节点,并使用 item(0) 获取第一个匹配的节点。 - 使用 replaceWith() 方法将
<text>
节点的内容替换为 "New content"。 - 最后使用 saveXML() 方法输出修改后的 XML 结果。
注意事项:
- replaceWith() 方法会将传入的参数转换为文本节点或者 DOMText 对象,如果传入的参数是字符串,会创建一个文本节点;如果传入的参数是一个 DOMNode 对象,那么会直接使用该节点进行替换。
- 如果当前 DOMCharacterData 节点没有父节点,那么 replaceWith() 方法将会抛出一个 DOMException 异常。