Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

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

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

作成日: 更新日:

基本的な使い方

nodeNameプロパティは、DOM要素のノード名を保持するプロパティです。Dom\Elementクラスに属しており、このプロパティを通じて要素のノード名を取得できます。ノード名とは、要素の種類を表す文字列であり、例えばHTMLの<div>要素であれば"div"、<h1>要素であれば"h1"といった具体的なタグ名が格納されています。

このプロパティは読み取り専用であり、値を直接変更することはできません。ノード名を変更するには、新しいノードを作成して既存のノードを置き換える必要があります。nodeNameプロパティの値は、HTML文書の構造を解析したり、特定の種類の要素を識別したりする際に非常に役立ちます。

例えば、DOMツリーを走査して特定のタグ名を持つ要素を検索したり、要素の種類に応じて異なる処理を実行したりする場合に、このプロパティを利用できます。また、XML文書を扱う場合にも、要素のノード名を取得して処理を分岐させるといった用途で使用されます。

具体的な使用例としては、JavaScriptのelement.nodeNameプロパティと同様に、要素のタグ名を取得するために利用されます。取得される値は大文字で返される点に注意が必要です。HTML要素の場合は通常、タグ名を小文字で記述しますが、nodeNameプロパティから取得される値は大文字になります。例えば、<div>要素のnodeNameプロパティの値は"DIV"となります。XML要素の場合は、記述されたとおりの大文字小文字が区別されます。

このプロパティを利用することで、要素の種類をプログラム的に判断し、柔軟な処理を実装することが可能になります。DOM操作を行う上で、要素の基本的な情報を取得するために頻繁に利用される重要なプロパティの一つです。

構文(syntax)

1Dom\Element::$nodeName

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

このプロパティは、要素のノード名を文字列として返します。例えば、<p> タグであれば「p」が返されます。

サンプルコード

PHP DOMDocument nodeName を取得する

1<?php
2
3// DomElement の nodeName プロパティを使用して、ノード名を取得する例
4$dom = new DOMDocument();
5$dom->loadXML('<root><child id="123">text</child></root>');
6
7// ルート要素を取得
8$root = $dom->documentElement;
9
10// 最初の子要素を取得
11$child = $root->firstChild;
12
13// 子要素のノード名を取得
14$nodeName = $child->nodeName;
15
16// 結果を出力
17echo "Node Name: " . $nodeName . PHP_EOL; // Output: Node Name: child

PHPのDOMElementクラスにおけるnodeNameプロパティは、要素のノード名(タグ名)を取得するために使用します。このプロパティは読み取り専用であり、値を設定することはできません。

上記のサンプルコードでは、まずDOMDocumentオブジェクトを作成し、XML文字列をロードしています。documentElementプロパティでルート要素を取得し、firstChildプロパティでその最初の子要素を取得しています。

次に、取得した子要素($child)に対してnodeNameプロパティを使用し、ノード名を変数$nodeNameに格納しています。この例では、子要素のタグ名である"child"が$nodeNameに格納されます。

最後に、echo文を使用して、取得したノード名を画面に出力しています。PHP_EOLは改行コードを表し、出力結果を見やすくするために付与しています。

nodeNameプロパティは、XMLドキュメントの構造をプログラムで解析し、特定の要素のタグ名を動的に取得したい場合に非常に役立ちます。たとえば、異なる種類の要素に対して異なる処理を行いたい場合などに利用できます。戻り値は常に文字列型で、要素のタグ名を返します。引数は不要で、直接プロパティにアクセスすることで値を取得できます。

nodeNameは要素のタグ名を取得するプロパティです。属性名やテキストノードの値は取得できません。XMLドキュメントが正しく読み込まれているか確認してから使用してください。大文字小文字は区別されるため、HTMLドキュメントの場合は想定と異なる結果になることがあります。tagNameプロパティも同様の機能を提供しますが、HTMLとの互換性が高いです。nodeNameは読み取り専用で、値を変更することはできません。

関連コンテンツ

関連プログラミング言語

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