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

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

作成日: 更新日:

基本的な使い方

childNodesプロパティは、DOMCdataSectionクラスに属し、指定されたCDATAセクションノードのすべての子ノードをDOMNodeListオブジェクトとして保持するプロパティです。

PHPのDOM拡張機能において、DOMCdataSectionクラスはXMLやHTML文書内のCDATAセクションを表現します。CDATAセクションは、内部に含まれるテキストがマークアップとして解釈されることなく、そのままのプレーンテキストデータとして扱われるべき領域を定義するために利用されます。これは、例えばソースコードの断片や特殊文字が多用されたテキストをXML文書内に埋め込む際に非常に便利です。

一般的に、DOMツリー構造におけるノード(要素やテキストなど)は、その下にさらに子ノードを持つことができます。そして、childNodesプロパティは、そうした親ノードに直接ぶら下がるすべての子ノードの集合をDOMNodeListという形式で提供します。

しかし、DOMCdataSectionは、その設計とXML/HTMLの仕様に基づき、純粋なテキストデータをカプセル化することを目的とした特殊なノードです。CDATAセクションの内部は単一の文字列データとして扱われ、その中にさらに要素や別のテキストノードといった構造的な子ノードを持つことはできません。

このため、DOMCdataSectionのインスタンスからchildNodesプロパティにアクセスした場合、返されるDOMNodeListオブジェクトは常に空の状態です。これは、CDATAセクションが構造的な子ノードを持たないという性質を正確に反映した挙動であり、このプロパティを使って子ノードを走査したり、追加・削除したりすることはできません。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$cdata = $dom->createCDATASection("example data");
4
5// DOMCdataSection オブジェクトから childNodes プロパティにアクセスします。
6$nodeList = $cdata->childNodes;
7?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMNodeList

DOMCdataSection クラスの childNodes プロパティは、その CDATA セクションノードに含まれる子ノードのリストである DOMNodeList を返します。

関連コンテンツ

関連プログラミング言語