DOMDocument precisa procurar por um elemento que tenha a class de atributo = “algo”

No PHP, estou usando o DOMDocument e preciso procurar um elemento que tenha atributo class = “algo”

Eu sou novo com o DOMDocument (estava usando REGEX toda a minha vida para me ajudar: P)

Ok, minha pergunta é que eu encontrei um DOMElement usando getElementById, agora eu quero olhar dentro das crianças desse elemento e recuperar um nó que tenha uma class particular, class = “something”

Como faço isso?

Depois de ter um DOMNode $n para um documento $d cujos filhos você deseja filtrar por class, você pode fazer (isso pesquisa de forma recursiva):

 $xp = new DOMXpath($d); foreach ($xp->query('//*[contains(@class, \'classname\')]', $n) as $found) { //do sth with $found } 

O ponto de contains é pegar esses nós cujo atributo de class tem mais de um valor, mas é um pouco grosseiro. Veja aqui uma solução melhor.

Use uma consulta XPath :

 $xpath = new DOMXPath($document); // keep the quotes around the classname $elementsThatHaveMyClass = $xpath->query('//*[@class="class here"]'); 

A expressão significa “de qualquer lugar do documento, encontre qualquer tag cujo atributo de class seja igual a class here “. Você pode ler mais sobre a syntax XPath aqui .