使用 PHP DOM 時,根據類別取得節點內的特定元素至關重要。讓我們來探索實現此目標的最佳方法:
$dom = new DomDocument();<br>$dom->load($filePath); <br>$finder = new DomXPath($dom);<br>$classname = "my-class";<br>$nodes = $finder->query("//*[contains(@class, '$classname')]");<br>
此方法使用XPath 選擇具有指定類別屬性的所有元素。
如果您喜歡CSS 選擇器語法,Zend_Dom_Query 提供了一個方便的解決方案:
$finder = new Zendom_Query($Dom_Query($ html);<br>$classname = 'my-class ';<br>$節點= $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中文網其他相關文章!