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

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

作成日: 更新日:

基本的な使い方

attributesプロパティは、DOMEntityクラスのインスタンスが持つ属性を保持するプロパティです。DOMEntityは、XML(Extensible Markup Language)ドキュメントのDTD(Document Type Definition)で定義されるエンティティノードを表します。

一般的なDOMノード、例えば要素(DOMElement)では、その属性(例: <div id="myId" class="container">におけるid="myId"class="container")をこのattributesプロパティを通じてDOMNamedNodeMapオブジェクトとして取得できます。DOMNamedNodeMapは、属性名のマップとして機能し、特定の属性に名前でアクセスすることを可能にします。

しかし、XMLの仕様上、エンティティ自体は属性を持つことができません。そのため、DOMEntityオブジェクトのattributesプロパティにアクセスしても、常にnullが返されるか、属性を一つも含まない空のDOMNamedNodeMapオブジェクトが返されます。このプロパティは実質的にDOMEntityに対しては属性情報を提供することはありません。システムエンジニアを目指す初心者の皆様は、このプロパティがDOMEntityに対しては常に空の値を返すという特性を理解し、他のノードタイプとは異なる振る舞いをすることに注意してください。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$dom->loadXML('<!DOCTYPE example [<!ENTITY copyright "©">]><root/>');
4
5$doctype = $dom->doctype;
6$entities = $doctype->entities;
7
8$entity = $entities->getNamedItem('copyright');
9
10$entityAttributes = $entity->attributes;
11
12var_dump($entityAttributes);

引数(parameters)

引数なし

引数はありません

戻り値(return)

?DOMNamedNodeMap

DOMEntity オブジェクトが持つ属性のコレクション(DOMNamedNodeMap)を返します。属性がない場合は null を返します。

関連コンテンツ

関連プログラミング言語