関連付けられた名前空間に新しい属性を作成する

# DOMDocument::createAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMDocument::createAttributeNS — 関連付けられた名前空間に新しい属性を作成する

### 説明

public function DOMDocument::createAttributeNS(?string `$namespace`, string `$qualifiedName`): DOMAttr|false

この関数は、DOMAttr クラスの新しいインスタンスを作成します。 このノードは、( DOMNode::appendChild() などで) 挿入されない限り、ドキュメント内にあらわれません。

### パラメータ

`namespace`

  名前空間の URI。

`qualifiedName`

  属性のタグ名とプレフィックスを、`prefix:tagname` のような形式で指定する。

### 戻り値

新しい DOMAttr、あるいはエラーが発生した場合は `false` を返します。

### エラー / 例外

以下のエラーコードで DOMException をスローします:

`DOM_INVALID_CHARACTER_ERR`

  `qualifiedName` が無効な文字を含んでいる場合に発生します。

`DOM_NAMESPACE_ERR`

  `qualifiedName` が不正な形式である場合、あるいは `qualifiedName` がプレフィックスを含んでいる にもかかわらず `namespace` が `null` である場合に発生します。

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | prefix を指定せずにこのメソッドをコールしても、デフォルトの名前空間を仮定する代わりに prefix を選ぶようになりました。これより前のバージョンでは、prefix なしの属性を作成し、誤ってオーナーとなる要素の名前空間を適用していました。なぜなら、デフォルトの名前空間は属性には適用されないためです。
8.3.0 | オーナーとなる要素で prefix が既に異なる namespace URI で使われている場合にこのメソッドを呼び出しても、名前空間の衝突を避けるために新しく prefix を異なるものに変更するようになりました。これは DOM の仕様が要求する振る舞いに合わせるためです。これより前のバージョンでは、エラーコード `DOM_NAMESPACE_ERR` を持つ DOMException をスローしていました。

### 参考

- DOMNode::appendChild() - 子要素群の最後に新しい子要素を追加する
- DOMDocument::createAttribute() - 新しい属性を作成する
- DOMDocument::createCDATASection() - 新しい cdata ノードを作成する
- DOMDocument::createComment() - 新しい comment ノードを作成する
- DOMDocument::createDocumentFragment() - 新しい文書片を作成する
- DOMDocument::createElement() - 新しい要素ノードを作成する
- DOMDocument::createElementNS() - 関連付けられた名前空間に新しい要素を作成する
- DOMDocument::createEntityReference() - 新しいエンティティ参照ノードを作成する
- DOMDocument::createProcessingInstruction() - 新しい PI ノードを作成する
- DOMDocument::createTextNode() - 新しいテキストノードを作成する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open