【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を返します。