【PHP8.x】lookupNamespaceURIメソッドの使い方

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

作成日: 更新日:

基本的な使い方

『lookupNamespaceURIメソッドは、指定された名前空間プレフィックスに対応する名前空間URIを検索するメソッドです』

このメソッドは、現在の処理命令ノードから開始して、その祖先をたどりながら、指定されたプレフィックスに最も近い名前空間の宣言を探します。XML文書では、名前空間は特定の要素で宣言され、その要素自身とすべての子孫要素に対して有効になります。このメソッドは、そうした階層構造を利用して、現在のノードの文脈で有効な名前空間URIを解決します。

引数には、検索したい名前空間のプレフィックスを文字列で指定します。もしプレフィックスとして null を渡した場合は、デフォルトの名前空間URIを検索します。

検索の結果、指定したプレフィックスに対応する名前空間URIが見つかれば、そのURIを表す文字列を返します。もし、文書のルート要素まで遡っても適切な名前空間の宣言が見つからなかった場合は null を返します。この機能は、XML文書を動的に解析し、特定のノードがどの名前空間に属しているかを正確に特定する際に役立ちます。

構文(syntax)

1<?php
2
3$xmlString = <<<XML
4<?xml version="1.0" encoding="UTF-8"?>
5<doc xmlns:custom="http://example.com/ns">
6    <?my_instruction data?>
7</doc>
8XML;
9
10$dom = new DOMDocument();
11$dom->loadXML($xmlString);
12
13$xpath = new DOMXPath($dom);
14$piNode = $xpath->query('//processing-instruction("my_instruction")')->item(0);
15
16// 処理命令ノードのコンテキストで、プレフィックス 'custom' に対応する名前空間URIを検索します。
17$uri = $piNode->lookupNamespaceURI('custom');
18
19var_dump($uri);
20

引数(parameters)

?string $prefix

  • ?string $prefix: 名前空間のURIを検索する接頭辞(プレフィックス)を指定する文字列。nullを指定すると、デフォルトの名前空間URIが返されます。

戻り値(return)

string|null

指定された名前空間URIを文字列で返します。指定された名前空間URIが見つからない場合は、nullを返します。

関連コンテンツ

関連プログラミング言語