使用 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 Zend_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中文网其他相关文章!