【PHP8.x】Dom\Entity::systemIdプロパティの使い方
systemIdプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
systemIdプロパティは、Dom\Entityクラスにおいて、XML文書内のエンティティのシステム識別子を保持するプロパティです。
Dom\Entityクラスは、XMLのエンティティ宣言、例えば外部のDTD(文書型定義)や外部一般エンティティなどをPHPのDOM拡張で表現するために使用されます。XMLのエンティティ宣言では、外部のリソースを参照するために「システム識別子(System Identifier)」が用いられることがあります。このシステム識別子は、参照される外部リソースの場所をURI(Uniform Resource Identifier)の形式で文字列として示します。
このsystemIdプロパティにアクセスすることで、該当するエンティティがどの外部リソースを参照しているのか、そのURI情報を文字列として取得できます。例えば、XML文書をPHPでパースし、その中に含まれる外部エンティティの定義内容や参照先を確認したい場合に、このプロパティが役立ちます。
もしエンティティにシステム識別子が指定されていない場合は、このプロパティはnullを返します。システムエンジニアとして、XMLドキュメントの構造を理解し、外部参照をプログラムで処理する際に、このsystemIdプロパティは非常に重要な情報となります。文書の整合性チェックや、参照される外部ファイルのパスを動的に処理するシナリオなどで活用されます。このプロパティは読み取り専用であり、その値を直接変更することはできません。
構文(syntax)
1$dom = new DOMDocument(); 2$xml = '<?xml version="1.0"?> 3<!DOCTYPE root [ 4 <!ENTITY testEntity SYSTEM "http://example.com/my_system_id.dtd"> 5]> 6<root>&testEntity;</root>'; 7$dom->loadXML($xml); 8 9$entity = $dom->doctype->entities->getNamedItem('testEntity'); 10$systemIdValue = $entity->systemId;
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
このプロパティは、エンティティに割り当てられたシステム固有のIDを文字列型で返します。