Извлечение имени класса с помощью DomCrawler
Я пытаюсь вычеркнуть оценку из Trustpilot. HTML-блок выглядит так
<div class="review-info__header" v-pre="">
<div class="review-info__header__verified">
<div class="star-rating star-rating-1 star-rating--medium">
<div class="star-item star-item--color">
<img src="https://cdn.trustpilot.net/brand-assets/1.3.0/single-star-transparent.svg" alt="Star 1">
</div>
<div class="star-item star-item--color">
<img src="https://cdn.trustpilot.net/brand-assets/1.3.0/single-star-transparent.svg" alt="Star 2">
</div>
<div class="star-item star-item--color">
<img src="https://cdn.trustpilot.net/brand-assets/1.3.0/single-star-transparent.svg" alt="Star 3">
</div>
<div class="star-item star-item--color">
<img src="https://cdn.trustpilot.net/brand-assets/1.3.0/single-star-transparent.svg" alt="Star 4">
</div>
<div class="star-item star-item--color">
<img src="https://cdn.trustpilot.net/brand-assets/1.3.0/single-star-transparent.svg" alt="Star 5">
</div>
</div>
</div>
</div>
Я могу сказать рейтинг по классу star-rating-1
где последняя часть указывает рейтинг из 5.
Я использую DomCrawler. Поэтому я в основном поместил HTML в переменную. Я тогда пытаюсь
$rating = $review->filter('.review-info__header')->filter('.star-rating')->filterXPath('div[contains(@class, "star-rating-")]');
Если я выведу HTML для этого узла, $rating->html()
Я вижу, что он находится в правильном месте, поскольку выводит внутренний HTML.
У меня есть пара вопросов. Во-первых, как я могу извлечь номер из имени класса, чтобы я мог определить рейтинг?
Во-вторых, если я удаляю первый и второй фильтр, я получаю, что текущий список узлов пуст. Для этого есть причина?
ps первый фильтр для родительского div, который я не показывал, но он существует.
Спасибо