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

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

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

作成日: 更新日:

基本的な使い方

lookupNamespaceURIメソッドは、指定された名前空間プレフィックスに対応する名前空間URIを検索するメソッドです。このメソッドは、XML文書を操作する際に、特定の要素や属性がどの名前空間に属しているかを調べるために使用されます。検索は、メソッドが呼び出されたノード(この場合はDom\Entityオブジェクト)から開始され、もしそのノードでプレフィックスの定義が見つからない場合は、親ノード、さらにその祖先ノードへと遡って探索を続けます。引数には、検索したい名前空間プレフィックスを文字列で指定します。引数を省略したりnullを渡したりした場合は、プレフィックスを持たないデフォルトの名前空間URIを検索します。指定したプレフィックスに対応する名前空間URIが見つかった場合は、そのURIが文字列として返されます。もし、どの祖先ノードにも対応する定義が存在しない場合は、nullが返されます。これにより、XML文書の構造内の任意の位置で、有効な名前空間の定義を動的に解決することができます。

構文(syntax)

1<?php
2
3$xml = <<<XML
4<?xml version="1.0"?>
5<!DOCTYPE doc [
6    <!ENTITY myEntity "An entity.">
7]>
8<root xmlns:app="http://example.com/app">
9    &myEntity;
10</root>
11XML;
12
13$doc = new \Dom\Document();
14$doc->loadXML($xml);
15
16/** @var \Dom\Entity $entity */
17$entity = $doc->doctype->entities->getNamedItem('myEntity');
18
19// The method is inherited from Dom\Node.
20// An entity node from a DTD is not in the element tree's context,
21// so it can generally only resolve built-in prefixes like 'xml'.
22$namespaceURI = $entity->lookupNamespaceURI('xml');

引数(parameters)

?string $prefix

  • ?string $prefix: 検索したい名前空間のプレフィックスを指定する文字列。null を指定すると、デフォルトの名前空間を検索します。

戻り値(return)

?string

指定された名前空間 URI を表す文字列、または要素が名前空間に属していない場合は null を返します。

関連コンテンツ

関連プログラミング言語