【PHP8.x】createAttributeNSメソッドの使い方
createAttributeNSメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
createAttributeNSメソッドは、DOMDocumentクラスに属し、XML文書内で名前空間を持つ新しい属性ノード(DOMAttrオブジェクト)を作成するメソッドです。このメソッドは、特にXML文書をプログラムで動的に構築したり、既存の文書に名前空間付きの属性を追加したりする際に利用されます。
DOMDocumentクラスは、HTMLやXML文書全体を表現し、その構造をオブジェクトとして操作するための基盤を提供します。createAttributeNSメソッドは、このDOMDocumentオブジェクトを介して、指定された名前空間URIと属性名を持つ属性ノードを生成します。ここでいう「名前空間」とは、異なるXML語彙(例えば、XHTMLとSVG)が同じ名前の要素や属性を使用する際に、それらが衝突しないように識別するための仕組みです。例えば、「xlink:href」のようにプレフィックス(xlink)とローカル名(href)を組み合わせることで、どの語彙に属する属性であるかを明確にできます。
このメソッドは、第一引数に属性の名前空間URIを、第二引数に「prefix:localName」形式、または単なる「localName」形式の属性名を文字列で受け取ります。メソッドが返すのは、新しく作成されたDOMAttrオブジェクトであり、この時点ではまだ文書のどの要素にも追加されていません。作成された属性ノードを実際のXML文書の要素に追加するには、DOMElementクラスのsetAttributeNodeNSメソッドなどを使用する必要があります。このように、createAttributeNSメソッドは、文書ツリーの操作における柔軟性を提供し、名前空間を考慮した正確なXML構造の生成を可能にします。
構文(syntax)
1<?php 2$domDocument = new DOMDocument(); 3 4$attribute = $domDocument->createAttributeNS('http://www.w3.org/2000/svg', 'svg:width'); 5 6$attribute->nodeValue = '100%'; 7?>
引数(parameters)
?string $namespace, string $qualifiedName
- ?string $namespace: 要素の属性が属する名前空間のURI。省略可能で、指定しない場合は名前空間なしの属性となります。
- string $qualifiedName: 作成する属性の名前。接頭辞とローカル名をコロンで区切った形式で指定します(例: "xlink:href")。
戻り値(return)
DOMAttr
指定された名前空間URIと属性名に基づいて、新しいDOMAttrオブジェクトを生成します。