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

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

作成日: 更新日:

基本的な使い方

firstChildプロパティは、HTMLやXMLドキュメントの構造を表すDOM(Document Object Model)において、あるノードの最初の子ノードを保持するプロパティです。特に、このプロパティが所属するDOMAttrクラスは、HTMLタグのid="example"class="item"といった属性そのものを表現するために用いられます。

通常、DOMの要素ノードなどでは、その内部に含まれるテキストノードや他の子要素ノードにアクセスするためにfirstChildプロパティが利用されます。しかし、DOMAttrクラスのインスタンスにおいてはこのfirstChildプロパティは常にnullを返します。これは、DOMの標準的な定義に基づき、属性ノードが子ノードを持つ構造ではないためです。属性の値は、属性ノード自体が保持する単一の文字列データとして扱われます。

したがって、DOMAttrオブジェクトが表す属性の具体的な値を参照したい場合には、firstChildプロパティではなく、nodeValueプロパティを利用する必要があります。nodeValueプロパティは、その属性に設定されている実際の値を文字列として正確に提供します。システムエンジニアを目指す初心者の皆様は、DOMAttrのfirstChildが常にnullを返す点、そして属性値の取得にはnodeValueプロパティを用いる点を理解しておくことが重要です。

構文(syntax)

1<?php
2
3// DOMAttr オブジェクトの準備
4$dom = new DOMDocument();
5$dom->loadXML('<element myattr="attribute value"></element>');
6$element = $dom->getElementsByTagName('element')->item(0);
7$attributeNode = $element->getAttributeNode('myattr');
8
9// DOMAttr::firstChild プロパティへのアクセス
10if ($attributeNode) {
11    $firstChildOfAttribute = $attributeNode->firstChild;
12
13    if ($firstChildOfAttribute) {
14        echo "属性の最初の子ノードの値: " . $firstChildOfAttribute->nodeValue; // 出力: attribute value
15    } else {
16        echo "この属性には子ノードがありません。";
17    }
18}
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMNode|null

DOMAttrオブジェクトの最初の子ノードをDOMNodeオブジェクトとして返します。最初の子ノードが存在しない場合はnullを返します。

関連コンテンツ

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