【PHP8.x】childNodesプロパティの使い方

childNodesプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『childNodesプロパティは、あるノードの直接の子である全ての子ノードの集合を、Dom\NodeListオブジェクトとして保持するプロパティです。このプロパティは読み取り専用であり、DOMツリーの構造を調べる際に使用されます。返されるDom\NodeListは、子ノードの順序付きコレクションであり、配列のようにインデックス番号を用いて各子ノードにアクセスできます。子ノードには、HTMLタグなどの要素ノードだけでなく、テキスト、コメント、処理命令など、あらゆる種類のノードが含まれる点に注意が必要です。例えば、要素間の改行やインデントに使われる空白文字もテキストノードとして扱われることがあります。また、childNodesが返すNodeListは「ライブ」な状態です。これは、元のDOMツリーに対してappendChildメソッドなどで子ノードが追加または削除されると、その変更がNodeListオブジェクトにも自動的に反映されることを意味します。もし対象のノードに子ノードが一つも存在しない場合は、空のDom\NodeListが返されます。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$dom->loadHTML('<html><body><p>段落1</p>テキストノード<!-- コメント --></div></body></html>', LIBXML_NOEMPTYTAG);
4
5// body要素 (Dom\Node) を取得します
6$body = $dom->getElementsByTagName('body')->item(0);
7
8// body要素のすべての子ノード (Dom\NodeList) を取得します
9$childNodes = $body->childNodes;
10
11// すべての子ノードをループ処理して、そのノード名を出力します
12foreach ($childNodes as $node) {
13    // $nodeはDom\Nodeオブジェクトです
14    echo $node->nodeName . PHP_EOL;
15}
16?>

引数(parameters)

戻り値(return)

?Dom\NodeList

Dom\Nodeオブジェクトの子ノードのコレクションをDom\NodeListオブジェクトとして返します。子ノードが存在しない場合はnullを返します。

【PHP8.x】childNodesプロパティの使い方 | いっしー@Webエンジニア