【PHP8.x】DOMProcessingInstruction::getLineNo()メソッドの使い方
getLineNoメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『getLineNoメソッドは、XMLやHTMLドキュメント内にある処理命令(Processing Instruction)が、元のファイルまたは文字列の何行目に記述されているかを取得するために実行するメソッドです。処理命令とは、<?xml-stylesheet ... ?> のように、<? と ?> で囲まれた形式で記述され、ドキュメントを処理するアプリケーションへ特定の指示を伝える役割を持ちます。このメソッドをDOMProcessingInstructionオブジェクトに対して呼び出すと、その処理命令が記述されている行番号を整数値として返します。この機能は、XML文書の妥当性検証や、特定の処理命令がどこで定義されているかを正確に把握したい場合に役立ちます。ただし、このメソッドが正しく行番号を返すためには、DOMDocument::load()やDOMDocument::loadXML()メソッドを使用してドキュメントを読み込む際に、オプションとして定数LIBXML_NOCDATAを指定する必要があります。このオプションが指定されていない場合、パーサーが行番号の情報を保持しないため、メソッドは常に0を返し、意図した結果が得られない点に注意が必要です。
構文(syntax)
1<?php 2 3$xml_string = <<<XML 4<?xml version="1.0"?> 5<document> 6 <?php-instruction action="process"?> 7</document> 8XML; 9 10$dom = new DOMDocument(); 11$dom->loadXML($xml_string); 12 13$xpath = new DOMXPath($dom); 14$nodes = $xpath->query('//processing-instruction()'); 15 16$pi_node = $nodes->item(0); 17 18// DOMProcessingInstruction オブジェクトから行番号を取得します 19$line = $pi_node->getLineNo(); 20 21echo $line; 22 23?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
このメソッドは、DOMProcessingInstructionノードが記述されているソースコード上の行番号を整数(int)で返します。