【PHP8.x】DOMProcessingInstruction::namespaceURIプロパティの使い方
namespaceURIプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
namespaceURIプロパティは、このノードの名前空間URIを保持する読み取り専用のプロパティです。このプロパティが所属するDOMProcessingInstructionクラスは、XML文書内における処理命令、例えば <?xml-stylesheet ... ?> のようなノードを表します。しかし、XMLの仕様上、処理命令は名前空間に属することがないと定められています。そのため、DOMProcessingInstructionオブジェクトに対してこのプロパティを参照した場合、その値は常にnullとなります。このプロパティは、すべてのノード型の基底クラスであるDOMNodeから継承されたものです。DOMElementやDOMAttrなど、実際に名前空間を持つことができる他のノード型では、このプロパティは名前空間URIの文字列を返しますが、処理命令ノードの文脈では有効な値を持ちません。したがって、DOMProcessingInstructionを扱う際には、namespaceURIプロパティが常にnullを返すことを前提としてコーディングを行う必要があります。
構文(syntax)
1<?php 2 3$xml = <<<XML 4<?xml version="1.0" encoding="UTF-8"?> 5<?xml-stylesheet type="text/css" href="style.css"?> 6<document/> 7XML; 8 9$doc = new DOMDocument(); 10$doc->loadXML($xml); 11 12// 処理命令ノードを取得します 13$pi_node = $doc->childNodes[1]; 14 15// DOMProcessingInstructionのnamespaceURIプロパティを取得します。 16// このプロパティは常にnullを返します。 17$namespace_uri = $pi_node->namespaceURI; 18 19var_dump($namespace_uri); 20 21?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|null
このプロパティは、この命令が属する名前空間のURIを文字列で返します。名前空間が定義されていない場合は、nullを返します。