【PHP8.x】Dom\ProcessingInstruction::lookupNamespaceURI()メソッドの使い方
lookupNamespaceURIメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『lookupNamespaceURIメソッドは、指定された名前空間プレフィックスに対応する名前空間URIを検索して返す処理を実行するメソッドです。XML文書などでは、要素名や属性名の衝突を避けるために名前空間が利用されますが、このメソッドは、あるノードの文脈において特定のプレフィックスがどのURIに結びついているかを調べるために使われます。検索は、このメソッドを呼び出した処理命令ノードから開始され、もしそのノード自身に定義が見つからなければ、親ノード、さらにその親ノードへと階層を遡り、最も近い祖先で定義されている名前空間URIを探します。引数には、検索したいプレフィックスを文字列で指定します。引数にnullを渡した場合は、デフォルト名前空間のURIが検索されます。メソッドの実行結果として、対応する名前空間URIが見つかればその文字列が返され、見つからなかった場合にはnullが返されます。これにより、特定の要素がどの名前空間に属しているかを動的に確認することが可能になります。
構文(syntax)
1<?php 2 3$xml = <<<XML 4<root xmlns:app="urn:example:app"> 5 <?php-pi data?> 6</root> 7XML; 8 9$doc = new \Dom\Document(); 10$doc->loadXML($xml); 11 12// Dom\ProcessingInstruction オブジェクトを取得 13$xpath = new \Dom\XPath($doc); 14$pi = $xpath->query('//processing-instruction()')->item(0); 15 16// 'app' というプレフィックスに対応する名前空間URIを検索 17$prefix = 'app'; 18$namespaceURI = $pi->lookupNamespaceURI($prefix); 19 20// string(17) "urn:example:app" と出力される 21var_dump($namespaceURI); 22 23?>
引数(parameters)
?string $prefix
- ?string $prefix: 名前空間のプレフィックスを指定する文字列。
nullも指定可能です。
戻り値(return)
?string
指定された名前空間URIを、この処理命令ノードで参照される名前空間プレフィックスに基づいて検索し、文字列またはnullを返します。