DOM 内のクラス名による要素の検索
PHP DOM ノードを使用する場合、サブ要素に基づいてアクセスする必要がある場合があります。クラス名。これを実現するには、いくつかの方法が利用可能です。
XPath セレクター
XPath セレクターを使用すると、XPath 構文を使用して XML または HTML ドキュメントをクエリできます。次の XPath 式を使用して、特定のクラス名の要素を取得できます。
//*[contains(@class, '$classname')]
$classname をターゲット クラス名に置き換えます。例:
$dom = new DomDocument(); $dom->load($filePath); $finder = new DomXPath($dom); $classname = "my-class"; $nodes = $finder->query("//*[contains(@class, '$classname')]");
Zend_Dom_Query
Zend_Dom_Query は、CSS セレクター構文を使用して HTML または XML ドキュメントをクエリする柔軟な方法を提供します。クラス属性セレクターを含むさまざまなセレクターをサポートします。 Zend_Dom_Query を使用するには:
$finder = new Zend_Dom_Query($html); $classname = 'my-class'; $nodes = $finder->query("*[class~=\"$classname\"]");
CSS セレクター
PHP は CSS セレクターをネイティブにサポートしていません。ただし、Simple HTML DOM Parser などの外部ライブラリを使用して HTML を解析し、CSS セレクターを使用して要素を見つけることができます。例:
$html = new simple_html_dom(); $html->load($htmlDocument); $elements = $html->find('.my-class');
CSS セレクターの Xpath バージョン [*[@class~='my-class']
このアプローチでは、Xpath を使用してCSS セレクターをエミュレートするやや複雑な式[[@class~='my-class']*:
$xpath = "//*[contains(concat(' ', normalize-space(@class), ' '), ' my-class ')]";
最終的に、クラス名で DOM 要素を取得するための最良のアプローチは、特定の要件と利用可能なリソースによって異なります。 PHP 環境で。
以上がPHP で DOM 要素をクラス名で検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。