【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 を返します。