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

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

作成日: 更新日:

基本的な使い方

childNodesプロパティは、DOMAttrクラスに属し、ノードの子要素のリストを保持するプロパティです。このプロパティは、ウェブページの構造を表すDOM(Document Object Model)の操作において重要な役割を果たします。

DOMAttrクラスは、HTMLやXMLドキュメント内で要素に付与される「属性」を表します。例えば、<a href="index.html">リンク</a>というHTMLタグの場合、href="index.html"の部分が属性にあたり、このhref属性がDOMAttrオブジェクトとして扱われます。

通常、DOMノードは他のノードを子として持つことができますが、DOMAttrオブジェクトは特別な性質を持ちます。属性は、その要素に対して追加情報を提供する単一の値を保持するものであり、要素のように他の子ノードを内包する構造ではありません。

そのため、DOMAttrオブジェクトのchildNodesプロパティにアクセスすると、常に空のDOMNodeListオブジェクトが返されます。これは、属性ノード自体が子ノードを持つことができない構造であるためです。プログラマーがDOMAttrオブジェクトに対して子ノードを期待してこのプロパティを参照しても、結果は常に何も含まれていないリストとなります。この動作を理解しておくことは、DOMを扱う上で非常に重要です。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$element = $dom->createElement('example');
4$dom->appendChild($element);
5
6$attribute = $dom->createAttribute('data');
7$attribute->nodeValue = 'value_text';
8$element->setAttributeNode($attribute);
9
10$domAttr = $element->getAttributeNode('data');
11
12$childNodeList = $domAttr->childNodes;
13?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMNodeList

DOMAttr::childNodes は、その属性ノードに紐づく子ノードのコレクションを DOMNodeList オブジェクトとして返します。このコレクションには、属性値に含まれるテキストノードや、もしあればコメントノードなどが含まれます。

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