ホームページ >バックエンド開発 >PHPチュートリアル >PHP でクラス名によって DOM 要素を効率的に取得するにはどうすればよいですか?

PHP でクラス名によって DOM 要素を効率的に取得するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-04 12:36:14411ブラウズ

How to Efficiently Retrieve DOM Elements by Class Name in PHP?

クラス名に基づいた DOM 要素の取得

PHP DOM では、特定のクラス名を持つ要素を抽出することが不可欠です。この質問は、DOM ノード内でそのような要素を分離する最適な方法を見つけるという開発者が直面する課題を示しています。

この問題に対処するために、いくつかのアプローチが提示されています。

  • XPath セレクター: 簡潔な解決策は、XPath 構文を使用することです。次の例を考えてみましょう:
$dom = new DomDocument();
$dom->load($filePath);
$finder = new DomXPath($dom);
$classname = "my-class";
$nodes = $finder->query("//*[contains(@class, '$classname')]");
  • Zend_Dom_Query を使用した CSS セレクター: より複雑なシナリオの場合は、Zend_Dom_Query を活用することをお勧めします。 CSS セレクターのサポートにより、便利な要素の取得が可能になります:
$finder = new Zend_Dom_Query($html);
$classname = 'my-class';
$nodes = $finder->query("*[class~=\"$classname\"]");

さらに、クラス名基準を持つ XPath セレクターを含むシナリオでは、より洗練されたバージョンが利用可能です:

$classname = "my-class";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");

以上がPHP でクラス名によって DOM 要素を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。