let*_*cia 5 php parsing css-selectors html-parsing simple-html-dom
我想得到"class"属性等于"someclass"的标签,但只有那些没有定义属性"id"的标签.
我尝试了以下(根据这个答案),但没有奏效:
$html->find('.someclass[id!=*]');
Run Code Online (Sandbox Code Playgroud)
注意:
我正在使用Simple HTML DOM类,在他们提供的基本文档中,我找不到我需要的东西.
从PHP Simple HTML DOM Parser Manual,如何查找HTML元素?,我们可以读到:
[!attribute]匹配没有指定属性的元素.
您的代码将变为:
$html->find('.someclass[!id]');
Run Code Online (Sandbox Code Playgroud)
这将匹配具有someClass没有id属性的类的元素.
我的原始答案是基于元素的选择,就像我们使用jQuery一样,因为Simple HTML DOM Parser声称在我们可以阅读的主页面上支持它们:
使用选择器在HTML页面上查找标签,就像jQuery一样.
我真诚地向那些被我的原始答案冒犯的人致歉,并对评论表示不满!
简单的 HTML DOM 类不支持负属性匹配所需的CSS3 伪类。
解决这个限制很简单,没有太多麻烦。
$nodes = array_filter($html->find('.something'), function($node){return empty($node->id);});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |