Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】DOMEntityReference::getLineNo()メソッドの使い方

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

作成日: 更新日:

基本的な使い方

getLineNoメソッドは、XMLやHTMLドキュメント内で、このDOMEntityReferenceノードが記述されている元の行番号を取得するメソッドです。このメソッドは、親クラスであるDOMNodeから継承されているため、DOMEntityReferenceを含む様々な種類のノードで利用することが可能です。主に、ドキュメントの解析(パース)処理中にエラーが発生した際のデバッグや、特定ノードのソース位置を追跡するために使用されます。例えば、あるエンティティ参照が原因で処理に問題が生じた場合、このメソッドを用いることで、ソースファイルの該当箇所を迅速に特定し、修正作業を効率化できます。戻り値は行番号を表す整数値ですが、ノードがファイルからではなく文字列から作成された場合や、ドキュメントの読み込み設定によっては行番号情報が利用できず、0を返すことがあります。このため、戻り値が0である可能性も考慮してプログラミングを行う必要があります。

構文(syntax)

1<?php
2$xml = <<<XML
3<?xml version="1.0" encoding="UTF-8"?>
4<!DOCTYPE root [
5    <!ENTITY myEntity "entity text">
6]>
7<root>
8    <item>&myEntity;</item>
9</root>
10XML;
11
12$doc = new DOMDocument();
13$doc->loadXML($xml);
14
15// <item> 要素の子ノードである実体参照ノードを取得します
16$entityRefNode = $doc->getElementsByTagName('item')->item(0)->firstChild;
17
18// DOMEntityReference::getLineNo() を使って、
19// XMLソース内でのノードの行番号を取得します
20// XML文字列の6行目に '&myEntity;' があるため、6が出力されます
21echo $entityRefNode->getLineNo();
22?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

このメソッドは、エンティティ参照ノードが存在するXML/HTMLドキュメントの行番号を整数で返します。

関連コンテンツ

関連プログラミング言語