【PHP8.x】getNamedItemNSメソッドの使い方
getNamedItemNSメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
getNamedItemNSメソッドは、Dom\NamedNodeMapクラスに属し、XMLドキュメントにおいて、特定の名前空間(namespace)とローカル名(local name)を持つノードを検索し、取得するメソッドです。
Dom\NamedNodeMapは、HTMLやXMLドキュメント内の要素が持つ属性の集合などを表すオブジェクトです。XMLドキュメントでは、異なる種類の情報を同じ名前で表現することがあり、これらを区別するために名前空間という仕組みが利用されます。例えば、異なる技術仕様で定義された同じ名前の属性や要素が混在する場合に、名前空間によってそれらを明確に区別することができます。
このgetNamedItemNSメソッドは、指定された名前空間のURIとノードのローカル名(修飾名のコロンより後ろの部分)に基づいて、該当するノードを効率的に見つけ出します。引数として、検索対象の名前空間URIとローカル名を文字列で受け取ります。検索に成功した場合、見つかったノードを表すDom\Nodeオブジェクトを返しますが、一致するノードが見つからない場合はnullを返します。
主にXMLドキュメントを解析し、名前空間を考慮して特定の属性や要素の情報を取得する際に非常に役立ちます。これにより、複雑なXML構造の中から必要な情報を正確に抽出し、プログラムで処理することが可能になります。このメソッドを使うことで、XML文書の構造をより精密に扱えるようになります。
構文(syntax)
1<?php 2 3$dom = new DOMDocument(); 4$dom->loadXML('<root xmlns:my="http://example.com/ns"><element my:attr="value"/></root>'); 5 6$element = $dom->getElementsByTagName('element')->item(0); 7$attributes = $element->attributes; 8 9$node = $attributes->getNamedItemNS('http://example.com/ns', 'attr'); 10?>
引数(parameters)
?string $namespace, string $localName
- ?string $namespace: 属性のXML名前空間を指定します。省略可能で、指定しない場合は
nullとなります。 - string $localName: 属性のローカル名を指定する文字列です。
戻り値(return)
?Dom\Attr
getNamedItemNSメソッドは、指定された名前空間URIとローカル名に一致するDom\Attrオブジェクトを返します。要素に該当する属性が存在しない場合はnullを返します。