Statement on glibc/iconv Vulnerability

DOMParentNode::replaceChildren

(PHP 8 >= 8.3.0)

DOMParentNode::replaceChildrenノード中の子を置換する

説明

public DOMParentNode::replaceChildren(DOMNode|string ...$nodes): void

ノード中の子を置換します。

パラメータ

nodes

子を置き換えるノード 文字列は自動的にテキストノードに変換されます。

戻り値

値を返しません。

エラー / 例外

DOM_HIERARCHY_REQUEST_ERR

指定された nodes のうちの一つの子ノードの型を、 親ノードが許可していない場合や、ノードが自分自身やその祖先であった場合に発生します。

DOM_WRONG_DOCUMENT_ERR

指定された nodes のうちの一つが、 このノードを作成したドキュメントとは異なるものから作成された場合に発生します。

変更履歴

バージョン 説明
8.3.0 オーナーとなるドキュメントがないノードに対して、 このメソッドをコールしても動作するようになりました。 これより前のバージョンでは、エラーコード DOM_HIERARCHY_REQUEST_ERR を持つ DOMException がスローされていました。

例1 DOMParentNode::replaceChildren() の例

<?php

$dom
= new DOMDocument();
$dom->loadHTML('<!DOCTYPE HTML><html><p>hi</p> test <p>hi2</p></html>');

$dom->documentElement->replaceChildren('foo', $dom->createElement('p'), 'bar');
echo
$dom->saveXML();
?>

上の例の出力は以下となります。

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE HTML>
<html>foo<p/>bar</html>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top