【PHP8.x】getLineNoメソッドの使い方

getLineNoメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getLineNoメソッドは、XMLやHTMLドキュメント内で、特定の処理命令(Processing Instruction)が記述されている行番号を取得するために実行するメソッドです。処理命令とは、例えば<?xml-stylesheet type="text/css" href="style.css"?>のように、ドキュメントの処理方法をアプリケーションに指示するためのノードを指します。このメソッドを利用することで、構文解析中にエラーが発生した箇所を特定したり、ドキュメントの構造を分析したりする際に、対象となる処理命令がソースファイルの何行目に存在するかを正確に知ることができます。この機能を有効にするためには、DOMDocument::load()DOMDocument::loadHTML()などのメソッドでドキュメントを読み込む際に、オプションとしてLIBXML_LINE_NUMBERS定数を指定しておく必要があります。このオプションが指定されていない場合、メソッドは行番号を正しく返せません。戻り値として、成功した場合は行番号を整数で返し、ノードがファイルから解析されたものではないなど、行番号が利用できない状況ではfalseを返します。

構文(syntax)

1<?php
2
3$xml = <<<XML
4<?xml version="1.0"?>
5<?php-pi process this?>
6<root />
7XML;
8
9$doc = new DOMDocument();
10$doc->loadXML($xml);
11
12$processingInstruction = $doc->childNodes[1];
13
14$lineNumber = $processingInstruction->getLineNo();
15
16echo $lineNumber;
17
18?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

このメソッドは、XMLまたはHTMLドキュメントにおける処理命令ノードの行番号を整数で返します。

関連コンテンツ