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

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

作成日: 更新日:

基本的な使い方

『setAttributeNodeNSメソッドは、名前空間に属する属性ノードを現在の要素に追加するメソッドです。XML文書などで名前の衝突を避けるために使われる「名前空間」を伴う属性を、要素に設定する際に利用します。このメソッドの大きな特徴は、属性名と値を文字列で指定するsetAttributeNSメソッドとは異なり、DOM\Attrクラスのインスタンスとしてあらかじめ作成された属性ノードオブジェクトを直接引数として受け取る点です。もし、追加しようとする属性と同じ名前空間URIとローカル名を持つ属性が要素に既に存在していた場合、古い属性は新しい属性ノードによって置き換えられます。その際、戻り値として置き換えられる前の古いDOM\Attrオブジェクトが返されます。一方、対象となる属性が要素に存在せず、新規に追加された場合はnullを返します。この戻り値を確認することで、属性が上書きされたかどうかを判別することが可能です。

構文(syntax)

1<?php
2
3$document = new Dom\Document();
4$element = $document->createElement('item');
5
6$attribute = $document->createAttributeNS('http://www.example.com/ns', 'ex:code');
7$attribute->value = 'Z-123';
8
9$element->setAttributeNodeNS($attribute);
10
11?>

引数(parameters)

Dom\Attr $attr

  • Dom\Attr $attr: 追加する属性ノードを指定するDom\Attrオブジェクト

戻り値(return)

?Dom\Attr

指定された名前空間属性を要素に設定します。成功した場合は、追加または置き換えられた Dom\Attr オブジェクトを返します。失敗した場合は null を返します。

関連コンテンツ

関連プログラミング言語