простой html dom: как получить тег без определенного атрибута

Я хочу получить теги с атрибутом «class», равным «someclass», но только те теги, которые не определили атрибут «id».

Я попробовал следующее (на основе этого ответа), но не работал:

$html->find('.someclass[id!=*]'); 

Заметка:

Я использую простой класс HTML DOM и в базовой документации, которую они дают, я не нашел то, что мне нужно.

Простой класс HTML DOM не поддерживает псевдо-классы CSS3, необходимые для сопоставления отрицательных атрибутов.

Это легко обойти ограничения без особых проблем.

 $nodes = array_filter($html->find('.something'), function($node){return empty($node->id);}); 

Из PHP Simple HTML DOM Parser Manual в разделе « Как найти HTML-элементы»? , мы можем читать:

[! attribute] Соответствует элементам, которые не имеют указанного атрибута.

Ваш код станет следующим:

 $html->find('.someclass[!id]'); 

Это будет соответствовать элементам класса someClass , у которых нет атрибута id .


Мой первоначальный ответ был основан на выборе элементов, как и в случае с jQuery, поскольку простой HTML DOM Parser утверждает, что поддерживает их на главной странице, где мы можем прочитать:

Найти теги на странице HTML с селекторами, как jQuery.

Мои искренние извинения перед теми, кто был оскорблен моим первоначальным ответом и выразил свое недовольство в комментариях!