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

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

作成日: 更新日:

基本的な使い方

『childNodesプロパティは、特定のDOM要素(Dom\Elementオブジェクト)の直接の子であるすべてのノードのコレクションを、Dom\NodeListオブジェクトとして保持するプロパティです。このプロパティが返すノードリストには、子要素(Dom\Element)だけでなく、テキスト(Dom\Text)、コメント(Dom\Comment)、処理命令(Dom\ProcessingInstruction)など、あらゆる種類のノードが含まれます。特に注意すべき点として、HTMLやXMLソースコード内の要素間の空白や改行もテキストノードとして扱われ、このリストに含まれることがあります。childNodesが返すDom\NodeListは「ライブコレクション」であり、元の要素の子ノードがスクリプトによって追加または削除されると、このリストの内容も自動的に更新されます。したがって、DOM構造を動的に変更しながらノードを操作する場合でも、常に最新の状態を参照することができます。すべての子ノードを順番に処理したい場合に便利ですが、要素ノードのみを対象としたい場合は、childrenプロパティを使用する方がより簡潔なコードになります。

構文(syntax)

1<?php
2
3$html = '<div><p>Paragraph 1</p><p>Paragraph 2</p></div>';
4
5$dom = new \Dom\Document();
6$dom->loadHTML($html);
7
8// <div> 要素を取得
9$element = $dom->getElementsByTagName('div')[0];
10
11// $element の子ノードのリスト (DOMNodeList) を取得
12$nodeList = $element->childNodes;
13
14// 子ノードの数を表示
15echo $nodeList->length; // 2
16
17?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMNodeList

Dom\Element クラスの childNodes プロパティは、その要素の子ノードのコレクションである DOMNodeList を返します。このリストには、要素ノード、テキストノード、コメントノードなどが含まれます。

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