【PHP8.x】Dom\EntityReference::DOCUMENT_POSITION_CONTAINED_BY定数の使い方
DOCUMENT_POSITION_CONTAINED_BY定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『DOCUMENT_POSITION_CONTAINED_BY定数は、DOMドキュメント内における2つのノードの位置関係を示すために使用される、あらかじめ定義された値の一つです。具体的には、基準となるノードが、比較対象のノードに内包されている状態を表します。この定数は主に Dom\Node::compareDocumentPosition() メソッドの戻り値に含まれるビットフラグとして利用されます。このメソッドは、2つのノードの相対的な位置を評価し、その結果をビットマスクとして返却します。返された値に DOCUMENT_POSITION_CONTAINED_BY のビットが含まれている場合、それはメソッドを呼び出したノードが引数で渡されたノードの子孫、つまり内側にあることを意味します。開発者は、この定数とビット単位の論理積(&)演算子を用いて、戻り値から特定の関係性を判定することができます。これにより、プログラム上でDOMツリーの構造を正確に把握し、ノード間の包含関係に基づいた処理を実装することが可能になります。
構文(syntax)
1<?php 2 3$xml = <<<XML 4<?xml version="1.0"?> 5<!DOCTYPE root [<!ENTITY sample "text">]> 6<root><parent>&sample;</parent></root> 7XML; 8 9$doc = new Dom\Document(); 10$doc->loadXML($xml); 11 12$parent = $doc->getElementsByTagName('parent')[0]; 13$entityRef = $parent->firstChild; 14 15$position = $entityRef->compareDocumentPosition($parent); 16 17if ($position & Dom\EntityReference::DOCUMENT_POSITION_CONTAINED_BY) { 18 echo "The node is contained by the other node."; 19} 20 21?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
DOCUMENT_POSITION_CONTAINED_BYは、あるDOMノードが別のDOMノードに完全に含まれていることを示す整数値です。