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