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

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

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

作成日: 更新日:

基本的な使い方

getRootNodeメソッドは、現在のエンティティ参照ノードが属しているドキュメントツリーのルートノードを取得するメソッドです。このメソッドは、DOMNodeクラスから継承されており、DOMにおけるあらゆる種類のノードで使用できます。DOM(Document Object Model)では、XMLやHTML文書を木のような階層構造(ツリー)として扱います。ルートノードとは、このツリー構造の最上位に位置するノードのことを指し、通常は文書全体を表すDOMDocumentオブジェクトです。したがって、このメソッドを呼び出すと、現在のDOMEntityReferenceノードが含まれている文書全体のDOMDocumentオブジェクトが返されます。これにより、特定のノードがどのドキュメントに属しているかを簡単に特定することができます。もし、ノードがまだどのドキュメントツリーにも追加されていない場合、例えばDOMDocument::createEntityReference()で作成された直後の状態では、このメソッドはそのノード自身を返します。返り値は常にDOMNodeオブジェクトとなります。

構文(syntax)

1<?php
2
3$xmlString = <<<XML
4<?xml version="1.0" encoding="UTF-8"?>
5<!DOCTYPE root [
6<!ENTITY myEntity "This is an entity.">
7]>
8<root>
9    <element>&myEntity;</element>
10</root>
11XML;
12
13$doc = new DOMDocument();
14$doc->loadXML($xmlString);
15
16// <element>の子ノードであるエンティティ参照ノードを取得します
17$entityRefNode = $doc->getElementsByTagName('element')->item(0)->firstChild;
18
19// DOMEntityReferenceオブジェクトからルートノード(ドキュメント自体)を取得します
20$rootNode = $entityRefNode->getRootNode();
21
22?>

引数(parameters)

?array $options = null

  • array|null $options = null: DOMDocument::load() および DOMDocument::save() で使用されるオプションを指定する配列。null の場合はデフォルトのオプションが使用されます。

戻り値(return)

DOMNode|DOMDocument|null

このメソッドは、エンティティ参照ノードのルートノードを返します。ルートノードは、DOMDocumentオブジェクトまたはDOMNodeオブジェクト、あるいはnullになります。

関連コンテンツ

関連プログラミング言語