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

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

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

作成日: 更新日:

基本的な使い方

nodeNameプロパティは、DOMツリーにおけるノードの名前を保持するプロパティです。PHPのDOM拡張機能は、HTMLやXMLドキュメントの構造をプログラムで表現し、操作するための機能を提供します。その中心となるDOMDocumentクラスは、XMLやHTMLドキュメント全体を表す特別なオブジェクトとして機能します。

このnodeNameプロパティは、DOMDocumentクラスのインスタンスに対して呼び出された場合、そのドキュメント自体が持つ名前を提供します。具体的には、DOMDocumentオブジェクトのnodeNameプロパティは常に「#document」という固定の文字列を返します。これは、DOMDocumentが、HTMLやXMLドキュメント全体のルートを表す「ドキュメントノード」と呼ばれる特殊なノードであるためです。

例えば、DOMツリー内の通常のHTML要素(例: <div>タグ)であれば、そのnodeNameは要素名であるdivを返しますが、DOMDocumentインスタンスの場合は、どのような内容のドキュメントを扱っていても、その名前は一貫して#documentとなります。

このプロパティは、DOMツリーの構造や、各ノードの役割を正確に理解するための基礎知識として重要です。直接的なデータ操作で頻繁に利用されることは少ないかもしれませんが、特に他の種類のノード(要素ノード、テキストノードなど)とDOMDocumentオブジェクトを区別したり、DOMツリーのデバッグ時にノードの種類を確認したりする際に役立ちます。これにより、複雑なドキュメント構造を解析し、プログラムで適切に扱う能力を向上させることができます。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3echo $dom->nodeName;
4?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

このプロパティは、ノードの名前を文字列として返します。

サンプルコード

PHP DOMDocument nodeName で要素名を取得する

1<?php
2
3// DOMDocument を作成し、XML を読み込む
4$dom = new DOMDocument();
5$dom->loadXML('<root><child>Text</child></root>');
6
7// ルート要素を取得
8$root = $dom->documentElement;
9
10// ルート要素の名前を取得
11$rootName = $root->nodeName;
12
13// 結果を出力
14echo "Root element name: " . $rootName . PHP_EOL; // Output: Root element name: root
15
16// 子要素を取得
17$child = $root->firstChild;
18
19// 子要素の名前を取得
20$childName = $child->nodeName;
21
22// 結果を出力
23echo "Child element name: " . $childName . PHP_EOL; // Output: Child element name: child
24?>

PHPのDOMDocumentクラスにおけるnodeNameプロパティは、要素のノード名を取得するために使用します。このプロパティは引数を必要とせず、要素のノード名を文字列として返します。

上記のサンプルコードでは、まずDOMDocumentクラスのインスタンスを作成し、loadXML()メソッドを使ってXML文字列を読み込んでいます。次に、documentElementプロパティを使用してドキュメントのルート要素を取得しています。

取得したルート要素に対してnodeNameプロパティを使用し、ルート要素の名前(この場合は "root")を変数$rootNameに格納しています。同様に、firstChildプロパティで最初の子要素を取得し、その子要素の名前(この場合は "child")を変数$childNameに格納しています。

最後に、echo文を使ってそれぞれの要素の名前を画面に出力しています。このコードを実行すると、ルート要素の名前と子要素の名前がそれぞれ表示されます。nodeNameプロパティは、XMLドキュメントの構造を解析し、特定の要素の名前を動的に取得する際に非常に役立ちます。要素の種類(element, attribute, textなど)によって、nodeNameプロパティが返す値は異なります。例えば、要素ノードの場合はタグ名が返されます。

DOMDocumentnodeNameプロパティは、要素の名前を文字列として返します。要素の種類の判別に利用できます。属性ノードやテキストノードなど、要素以外のノードタイプでは挙動が異なる場合があるため注意が必要です。nodeNameの値は大文字小文字を区別します。XML文書によっては、要素名の大文字小文字が混在している可能性があるため、比較を行う際はstrtolower()strtoupper()関数で統一することをおすすめします。また、nodeNameは読み取り専用のプロパティであり、値を変更することはできません。

関連コンテンツ

関連プログラミング言語