ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してクラス名で DOM 要素を効率的に選択するにはどうすればよいですか?
PHP DOM を使用する場合、クラスに基づいてノード内の特定の要素を取得することが重要です。これを達成するための最良のアプローチを見てみましょう:
$dom = new DomDocument();<br>$dom->load($filePath);<br>$finder = 新しい DomXPath($dom);<br>$classname = "my-class";<br>$nodes = $finder->query("//*[contains(@class, '$classname')]");<br>
このアプローチでは XPath を使用して、指定されたクラス属性を持つすべての要素を選択します。
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 サイトの他の関連記事を参照してください。