【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
指定された名前空間に属する、すべての子孫要素のコレクションを返します。