首页 >后端开发 >php教程 >如何使用 PHP 通过类名高效地选择 DOM 元素?

如何使用 PHP 通过类名高效地选择 DOM 元素?

Susan Sarandon
Susan Sarandon原创
2024-12-05 20:27:11228浏览

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

使用 PHP DOM 通过类名获取 DOM 元素

使用 PHP DOM 时,根据类获取节点内的特定元素至关重要。让我们探索实现此目标的最佳方法:

XPath 选择器

$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 选择具有指定类属性的所有元素。

Zend_Dom_Query CSS选择器

如果您更喜欢 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn