【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 オブジェクトとして返します。

関連コンテンツ

関連プログラミング言語