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

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

作成日: 更新日:

基本的な使い方

getElementsByTagNameNSメソッドは、指定された名前空間URIとローカル名を持つすべての要素を、ドキュメント内で発見順にNodeListとして返すメソッドです。このメソッドは、名前空間を考慮した要素の検索を行う際に非常に役立ちます。

具体的には、第一引数に名前空間URI、第二引数にローカル名を文字列として指定します。名前空間URIは、XML名前空間を識別するためのURIであり、ローカル名は要素のタグ名です。例えば、http://www.w3.org/1999/xhtmlという名前空間URIとpというローカル名を指定した場合、HTMLドキュメント内のすべての<p>要素(名前空間が指定されている場合)がNodeListとして返されます。

getElementsByTagNameNSメソッドは、特にXMLやXHTMLといった名前空間を使用するドキュメントを扱う際に有効です。HTML5では、要素が特定の名前空間に属している場合があるため、このメソッドを使用することで、特定の名前空間に属する要素のみを効率的に抽出できます。

返されるNodeListは、ドキュメント内の要素のライブなコレクションです。つまり、NodeListの内容は、ドキュメントの構造が変更されると自動的に更新されます。これは、NodeListを操作する際に、ドキュメントの変更がNodeListに反映されることを意味します。

このメソッドは、DOMDocumentクラスやHTMLElementクラスなど、DOMNodeを継承するクラスのインスタンスから呼び出すことができます。呼び出し元のノードをルートとして、そのノードの子孫要素から検索を行います。名前空間URIにnullまたは空文字列を指定した場合、名前空間を持たない要素が検索されます。ローカル名に*を指定した場合、すべてのローカル名を持つ要素が検索されます。両方に*を指定した場合、すべての要素が返されます。

構文(syntax)

1DOMHTMLDocument::getElementsByTagNameNS( ?string $namespaceURI, string $localName ): DOMNodeList

引数(parameters)

?string $namespace, string $localName

  • ?string $namespace: 名前空間を指定する文字列。NULLの場合、名前空間は考慮されません。
  • string $localName: 検索する要素のローカル名を指定する文字列。

戻り値(return)

Dom\HTMLCollection

指定された名前空間に属する、すべての子孫要素のコレクションを返します。

【PHP8.x】getElementsByTagNameNSメソッドの使い方 | いっしー@Webエンジニア