【PHP8.x】childNodesプロパティの使い方
childNodesプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
childNodesプロパティは、DOMツリー内のノードの子ノードをリストとして保持するプロパティです。このプロパティは、XMLドキュメントの構造をプログラムで操作するためのPHPのDOM拡張機能の一部として提供されます。
DOMNotationクラスは、XMLドキュメント型定義(DTD)内で宣言される「記法(notation)」を表すものです。記法は、XMLの外部にある非XML形式のデータを識別するために使われ、例えばMIMEタイプなどを指定する際に利用されます。
一般的なDOMノードにおいて、childNodesプロパティは、そのノードが直接持つすべての子ノードの集合をDOMNodeListオブジェクトとして返します。しかし、DOM仕様では、DOMNotationノードは子ノードを持つことができない特殊なノードタイプと定められています。
したがって、DOMNotationオブジェクトのchildNodesプロパティにアクセスした場合、返されるDOMNodeListオブジェクトは常に空となり、いかなる子ノードも含まれません。これは、DOMNotationノードがそれ自体で完結しており、内部に他の構造を持つことを意図されていないためです。このプロパティは読み取り専用であり、子ノードを追加したり削除したりすることはできません。
構文(syntax)
1<?php 2$xmlString = '<!DOCTYPE root [<!NOTATION gif SYSTEM "image/gif">]><root/>'; 3$dom = new DOMDocument(); 4$dom->loadXML($xmlString); 5 6// ドキュメントタイプから最初のNOTATIONノードを取得します。 7$notation = $dom->doctype->notations->item(0); 8 9// DOMNotationオブジェクトのchildNodesプロパティにアクセスします。 10// DOMNotationノードは子ノードを持たないため、これは常に空のDOMNodeListを返します。 11$childNodes = $notation->childNodes; 12 13// 取得したDOMNodeListの要素数を表示します。 14echo "DOMNotation childNodes length: " . $childNodes->length; 15?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
DOMNodeList
DOMNotation オブジェクトの子ノードのリストを DOMNodeList オブジェクトとして返します。