【PHP8.x】Dom\EntityReference::lookupPrefix()メソッドの使い方
lookupPrefixメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
lookupPrefixメソッドは、指定された名前空間URI(Uniform Resource Identifier)に対応するプレフィックスを検索するメソッドです。このメソッドは、Dom\EntityReferenceオブジェクトのノードから処理を開始します。XML文書では、同じ名前の要素や属性が異なる意味で使われる際の衝突を避けるために名前空間が用いられます。各名前空間は一意なURIで識別され、多くの場合、そのURIを文書内で簡潔に表すためのプレフィックス(接頭辞)が関連付けられています。lookupPrefixメソッドは、引数として渡された名前空間URIを基に、対応するプレフィックスを現在のノードから親ノードへと遡って探します。検索の過程で、指定されたURIに最も近い場所で定義されているプレフィックスが見つかった場合、そのプレフィックスの文字列を返します。もし文書のルート要素まで遡っても該当するプレフィックスが見つからなかった場合、または指定されたURIがデフォルト名前空間のものであった場合にはnullを返します。
構文(syntax)
1<?php 2 3$xml = <<<XML 4<?xml version="1.0"?> 5<!DOCTYPE document [ 6 <!ENTITY entity "some text"> 7]> 8<root xmlns:ns="http://example.com/namespace"> 9 <element>&entity;</element> 10</root> 11XML; 12 13$doc = new DOMDocument(); 14$doc->loadXML($xml); 15 16// Dom\EntityReference ノード (&entity;) を取得します 17$entityRefNode = $doc->getElementsByTagName('element')->item(0)->firstChild; 18 19// 指定した名前空間URIに対応する接頭辞を検索します 20$prefix = $entityRefNode->lookupPrefix('http://example.com/namespace'); 21 22echo $prefix; // "ns" が出力されます 23 24?>
引数(parameters)
string $namespace
- string $namespace: 検索する名前空間のURIを指定する文字列
戻り値(return)
?string
指定されたURIに対応する名前空間プレフィックスを文字列で返します。指定されたURIに対応するプレフィックスが見つからない場合はnullを返します。