【PHP8.x】getElementsByTagNameメソッドの使い方
getElementsByTagNameメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
getElementsByTagNameメソッドは、特定のDOM要素を起点として、その配下にある子孫要素の中から指定されたタグ名を持つすべての要素を検索し、取得するメソッドです。このメソッドはDom\Elementオブジェクトから呼び出され、その要素の内部だけが検索対象となります。引数には、検索したい要素のタグ名を文字列で指定します。例えば、'p'を指定すればすべてのp要素が、'div'を指定すればすべてのdiv要素が取得できます。また、ワイルドカードとしてアスタリスク*を指定すると、タグ名に関わらずすべての子孫要素を取得することが可能です。メソッドの返り値は、見つかった要素を文書の出現順に格納したDom\NodeListオブジェクトです。Dom\NodeListは、取得した要素の集合を扱うためのオブジェクトであり、ループ処理などを使って個々の要素にアクセスできます。もし指定したタグ名の要素が一つも見つからなかった場合でも、エラーにはならず、要素数が0の空のDom\NodeListが返されます。文書全体ではなく、特定の範囲内に絞って要素を検索したい場合に非常に便利なメソッドです。
構文(syntax)
1<?php 2 3$html = ' 4<div id="container"> 5 <p>段落1</p> 6 <span>テキスト</span> 7 <div> 8 <p>段落2</p> 9 </div> 10</div> 11'; 12 13$dom = new DOMDocument(); 14$dom->loadHTML($html); 15 16// Dom\Element オブジェクトを取得 17$element = $dom->getElementById('container'); 18 19// Dom\Element::getElementsByTagName(string $qualifiedName): Dom\NodeList 20// $element の子孫の中から、指定したタグ名 ('p') の要素を全て取得する 21$nodeList = $element->getElementsByTagName('p'); 22 23// 取得したリストに含まれる要素の数を出力 24echo $nodeList->length; 25 26?>
引数(parameters)
string $qualifiedName
- string $qualifiedName: 検索したい要素のタグ名を指定する文字列。大文字・小文字は区別されません。
戻り値(return)
Dom\NodeList
指定されたタグ名に一致するすべての Dom\Element オブジェクトの Dom\NodeList を返します。