【PHP8.x】Dom\EntityReference::getLineNo()メソッドの使い方
getLineNoメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『getLineNoメソッドは、XMLドキュメント内でエンティティ参照が定義されている行番号を取得するメソッドです。このメソッドは、親クラスであるDom\Nodeから継承されており、ドキュメント内の特定のノードがソースファイルの何行目に位置するかを特定するために使用されます。Dom\EntityReferenceオブジェクトは、&や<といったXMLエンティティ参照を表すノードです。このメソッドをDom\EntityReferenceオブジェクトに対して呼び出すと、そのエンティティ参照が記述されている行番号が整数値として返されます。この機能は、XMLドキュメントの解析中にエラー箇所を特定したり、デバッグ情報を表示したりする際に非常に便利です。ただし、正確な行番号を取得するためには、Dom\Document::load()やDom\Document::loadXML()関数でドキュメントを読み込む際に、LIBXML_LINE_NUMBERSオプションを有効にしておく必要があります。このオプションが指定されていない場合、メソッドは行番号を特定できず、常に0を返します。
構文(syntax)
1<?php 2 3$xml = <<<XML 4<?xml version="1.0" standalone="yes"?> 5<!DOCTYPE doc [ 6<!ENTITY ent "entity-text"> 7]> 8<doc>&ent;</doc> 9XML; 10 11$dom = new \DOMDocument(); 12 13// Line number reporting must be enabled before loading the XML. 14$dom->preserveWhiteSpace = false; 15 16$dom->loadXML($xml); 17 18// Obtain the Dom\EntityReference node. 19$entityNode = $dom->documentElement->firstChild; 20 21// Get the line number where the entity reference appears. 22$lineNumber = $entityNode->getLineNo(); 23 24// var_dump($lineNumber); // In this example, it outputs: int(5) 25 26?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
このメソッドは、参照されているエンティティの行番号を整数型(int)で返します。