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

PHP を使用してクラス名で DOM 要素を効率的に選択するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 20:27:11227ブラウズ

How Can I Efficiently Select DOM Elements by Class Name Using PHP?

PHP DOM を使用したクラス名による DOM 要素の取得

PHP DOM を使用する場合、クラスに基づいてノード内の特定の要素を取得することが重要です。これを達成するための最良のアプローチを見てみましょう:

XPath Selector

$dom = new DomDocument();<br>$dom->load($filePath);<br>$finder = 新しい DomXPath($dom);<br>$classname = "my-class";<br>$nodes = $finder->query("//*[contains(@class, '$classname')]");<br>

このアプローチでは XPath を使用して、指定されたクラス属性を持つすべての要素を選択します。

Zend_Dom_Query CSS Selector

CSS セレクター構文を好む場合は、Zend_Dom_Query が便利なソリューションを提供します:

$finder = new Zend_Dom_Query($html);<br>$classname = 'my-class ';<br>$nodes = $finder->query("*[class~='$classname']");<br>

更新: *[@class~=' の XPath バージョンmy-class'] CSS セレクター

Zend_Dom_Query を使用して CSS セレクターを解析すると、次のことがわかります。同等の XPath 式:

$nodes = $finder->query("[contains(concat(' ', Normalize-space(@class), ' '), ' $classname ' )]");<br>

この XPath を直接利用することで、 Zend_Dom_Query を使用せずに、指定されたクラスを含む要素をクエリできます。

クラスで要素を選択する場合、要素のタイプがわかっている場合は、* を対応するタグ名に置き換えて、検索範囲を絞り込むことができることに注意してください。効率の向上。

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

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