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

【PHP8.x】Dom\EntityReference::getRootNode()メソッドの使い方

getRootNodeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『getRootNodeメソッドは、現在のDom\EntityReferenceノードが属するDOMツリーのルートノードを取得する処理を実行するメソッドです。DOMにおいて、HTMLやXMLドキュメントは、要素やテキストといった各部分(ノード)が親子関係を持つ階層構造(ツリー)として扱われます。このメソッドは、そのツリー構造における最上位のノード、すなわちドキュメントの根元となるノードを返します。通常、返されるのはドキュメント全体を表すDom\Documentオブジェクトです。この機能により、例えばドキュメント内の特定のエンティティ参照を表すノードから、そのドキュメント全体の文字エンコーディングや他の要素へアクセスするといった操作が可能になります。なお、対象となるノードがまだどのドキュメントにも追加されておらず、ツリーに属していない孤立した状態の場合、このメソッドはそのノード自身を返します。この挙動は、ノードがドキュメントに正しく組み込まれているかを確認する際にも役立ちます。

構文(syntax)

1<?php
2
3$xml = <<<XML
4<?xml version="1.0" encoding="utf-8" ?>
5<!DOCTYPE doc [
6  <!ENTITY exampleEntity "an entity value">
7]>
8<root>
9  <para>Here is &exampleEntity;.</para>
10</root>
11XML;
12
13$doc = new DOMDocument();
14$doc->loadXML($xml);
15
16// <para>要素の子ノードリストから Dom\EntityReference オブジェクトを取得
17$entityRef = $doc->getElementsByTagName('para')->item(0)->childNodes->item(1);
18
19// Dom\EntityReference::getRootNode() の構文
20// このノードが含まれるツリーのルートノードを取得します。
21$rootNode = $entityRef->getRootNode();
22
23// 取得したノードがドキュメントオブジェクト自身であることを確認
24var_dump($rootNode === $doc); // bool(true)
25echo $rootNode->nodeName;     // #document
26
27?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

Dom\Node

Dom\EntityReference オブジェクトが参照している DOM ツリーのルートノードを Dom\Node オブジェクトとして返します。

関連コンテンツ

関連プログラミング言語