【PHP8.x】systemIdプロパティの使い方

systemIdプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

systemIdプロパティは、Dom\Notationオブジェクトが表すXMLドキュメントの記法(NOTATION)宣言におけるシステム識別子を保持するプロパティです。

Dom\Notationクラスは、XMLドキュメントのDOCTYPE宣言内で定義される「記法」を表現するために使用されます。記法とは、XMLドキュメント内で特定の名前を持つデータ形式や、そのデータを処理するための外部プログラムなどを定義する仕組みです。

このsystemIdプロパティは、その記法が参照する外部リソースの場所を示すURI(Uniform Resource Identifier)などの文字列を保持します。システム識別子は、XMLドキュメントが外部のシステムやファイルとどのように連携するかをプログラムから特定するために利用されます。例えば、XML内で画像形式やマルチメディア形式などの外部データを参照する際に、そのデータ形式の定義や処理方法を記述した外部ファイルのパスをこのシステム識別子として指定することがあります。

このプロパティの値は読み取り専用であり、XMLドキュメントの構造解析によって自動的に設定されます。もし記法宣言にシステム識別子が指定されていない場合は、空文字列を返します。このプロパティを利用することで、XMLドキュメントが参照する外部リソースの情報を正確に取得し、その後の処理に役立てることができます。

構文(syntax)

1<?php
2
3$xml = <<<XML
4<?xml version="1.0" encoding="UTF-8"?>
5<!DOCTYPE root [
6  <!NOTATION jpeg SYSTEM "image/jpeg">
7]>
8<root />
9XML;
10
11$doc = new DOMDocument();
12$doc->loadXML($xml);
13
14$notation = $doc->doctype->notations->getNamedItem('jpeg');
15
16$systemIdentifier = $notation->systemId;
17
18echo $systemIdentifier;
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

?string

このプロパティ systemId は、システム識別子を表す文字列を返します。識別子が存在しない場合は null が返されます。

関連コンテンツ

関連プログラミング言語