栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过类名获取DOM元素

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过类名获取DOM元素

更新:

*[@class~='my-class']
CSS选择器的Xpath版本

因此,在下面我回应hakre的评论之后,我感到好奇,并调查了后面的代码

Zend_Dom_Query
。看起来上面的选择器已编译为以下xpath(未经测试):

[contains(concat(' ', normalize-space(@class), ' '), ' my-class ')]

所以PHP将是:

$dom = new Domdocument();$dom->load($filePath);$finder = new DomXPath($dom);$classname="my-class";$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");

基本上,我们在这里所做的就是规范化

class
属性,以便即使单个类也受空格限制,而完整的类列表也受空格限制。然后在要搜索的类后面加上一个空格。这样,我们可以有效地查找并仅找到的实例
my-class


使用xpath选择器?

$dom = new Domdocument();$dom->load($filePath);$finder = new DomXPath($dom);$classname="my-class";$nodes = $finder->query("//*[contains(@class, '$classname')]");

如果只是元素的一种类型,则可以将其替换

*
为特定的标记名。

如果您需要使用非常复杂的选择器进行大量操作,我建议您

Zend_Dom_Query
支持CSS选择器语法(类似于jQuery):

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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号