【PHP8.x】hasAttributeNSメソッドの使い方

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

作成日: 更新日:

基本的な使い方

hasAttributeNSメソッドは、Dom\HTMLElementクラスに属し、特定の名前空間を持つ属性がHTML要素に存在するかどうかを確認するメソッドです。Dom\HTMLElementクラスは、PHPのDOM拡張機能において、HTML文書内の個々の要素(例えば、<p>タグや<div>タグなど)をオブジェクトとして表現するために使用されます。

このメソッドの主な目的は、要素が特定の名前空間URIとローカル名で識別される属性を持っているかを真偽値で判定することです。例えば、XMLベースのHTML文書や、SVGなどの異なる名前空間を持つ要素を扱う際に、特定の名前空間に属する属性があるかどうかを確認したい場合に非常に役立ちます。

具体的には、第一引数で指定された名前空間のURIと、第二引数で指定された属性のローカル名(プレフィックスを含まない名前)の両方に合致する属性が要素に存在する場合にtrueを返し、存在しない場合にはfalseを返します。これにより、開発者は複雑なXMLやXHTML構造を解析する際に、目的の属性が意図した名前空間に正しく定義されているかを効率的に確認することができます。

この機能は、特にWebサービスから取得したデータや、外部のXMLファイルをPHPで処理する際に、特定の情報が属性として付与されているかをプログラム的に検証する場面で有効です。

構文(syntax)

1<?php
2
3$document = new DOMDocument();
4$element = $document->createElementNS('http://example.com/ns', 'myelement');
5$element->setAttributeNS('http://example.com/ns', 'myattribute', 'value');
6
7// Dom\HTMLElement クラスのインスタンスに対して hasAttributeNS メソッドを呼び出す
8$hasAttribute = $element->hasAttributeNS('http://example.com/ns', 'myattribute');
9var_dump($hasAttribute);
10
11$doesNotHaveAttribute = $element->hasAttributeNS('http://example.com/ns', 'otherattribute');
12var_dump($doesNotHaveAttribute);
13
14?>

引数(parameters)

?string $namespace, string $localName

  • ?string $namespace: 属性のネームスペースを指定する文字列。NULLを指定することも可能です。
  • string $localName: 属性のローカル名を指定する文字列。

戻り値(return)

bool

指定された名前空間URIと属性名を持つ属性が要素に存在するかどうかを示します。要素に属性が存在する場合は true を、存在しない場合は false を返します。

【PHP8.x】hasAttributeNSメソッドの使い方 | いっしー@Webエンジニア