Здравствуйте!
К сожалению при работе с DOM в PHP нет возможности сделать выборку данных по имени класса. Благо всё уже придумано до нас и есть хорошо работающий код:
function getElementsByClassName($dom, $ClassName, $tagName=null) {
if($tagName){
$Elements = $dom->getElementsByTagName($tagName);
}else {
$Elements = $dom->getElementsByTagName("*");
}
$Matched = array();
for($i=0;$i<$Elements->length;$i++) {
if($Elements->item($i)->attributes->getNamedItem('class')){
if($Elements->item($i)->attributes->getNamedItem('class')->nodeValue == $ClassName) {
$Matched[]=$Elements->item($i);
}
}
}
return $Matched;
}
Пример использования:
$text = '<span class="js-item-price" itemprop="price" content="16000">16 000</span>';
$dom = new DOMDocument;
@$dom->loadHTML($text);
$finded= getElementsByClassName($dom, 'js-item-price', 'span');
$data = $finded[0]->getAttribute('content');
echo $data;
Пример выведет 16000 в качестве ответа.