【PHP8.x】internalSubsetプロパティの使い方
internalSubsetプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
internalSubsetプロパティは、DOMDocumentTypeクラスに属し、XMLまたはHTMLドキュメントのDOCTYPE宣言で定義された内部サブセットの文字列を保持するプロパティです。DOMDocumentTypeクラスは、文書のDOCTYPE宣言ノードを表し、その中に含まれるDTD(Document Type Definition)に関する情報を提供します。
このinternalSubsetプロパティは、DOCTYPE宣言内で直接記述されたDTDの定義内容を文字列として提供します。例えば、<!DOCTYPE document [ <!ELEMENT root EMPTY> ]> のようなDOCTYPE宣言がある場合、internalSubsetプロパティは <!ELEMENT root EMPTY> という部分の文字列を保持します。これにより、外部のDTDファイルを参照することなく、文書そのものに埋め込まれたDTDのルールをプログラムから確認することが可能になります。
もしDOCTYPE宣言に内部サブセットが定義されていない場合、このプロパティは null を返します。システムエンジニアがXML文書の構造をプログラムで解析する際、特にその文書が独自のDTDルールを内部で持っているかどうかを判別したり、その具体的な定義内容を把握したりする場合に、このinternalSubsetプロパティは非常に役立ちます。文書の有効性を検証したり、特定の構造を期待する処理を行う前に、内部定義を確認するための重要な情報源となります。
構文(syntax)
1<?php 2$xmlString = <<<XML 3<?xml version="1.0"?> 4<!DOCTYPE example [ 5 <!ELEMENT example (item)> 6 <!ELEMENT item (#PCDATA)> 7]> 8<example> 9 <item>Data</item> 10</example> 11XML; 12 13$dom = new DOMDocument(); 14$dom->loadXML($xmlString); 15 16$docType = $dom->doctype; 17 18if ($docType) { 19 echo $docType->internalSubset; 20} 21?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|null
DOMDocumentTypeのinternalSubsetプロパティは、DOCTYPE宣言の内部サブセットの内容を文字列として返します。内部サブセットが存在しない場合はnullを返します。