DOMDocument нужно искать элемент, который имеет атрибут class = "something"

В PHP я использую DOMDocument, и мне нужно искать элемент с атрибутом class = "something"

Я новичок в DOMDocument (использую REGEX всю свою жизнь, поэтому помогите мне: P)

Итак, мой вопрос: я нашел DOMElement, используя getElementById, теперь я хочу заглянуть внутрь дочерних элементов этого элемента и получить узел с определенным классом, class = "something"

Как мне это сделать?

Related of "DOMDocument нужно искать элемент, который имеет атрибут class = "something""

После того, как у вас есть DOMNode $n для документа $d чьи дети вы хотите фильтровать по классу, который вы можете сделать (это ищет рекурсивно):

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

Точка contains – улавливать те узлы, у которых атрибут класса имеет более одного значения, но он слишком груб. См. Здесь, чтобы получить лучшее решение.

Используйте запрос XPath :

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

Выражение означает «откуда угодно в документе, найдите любой тег, атрибут class которого равен class here ». Здесь вы можете прочитать больше о синтаксисе XPath.