如何使用 XPath 從該 HTML 代碼中獲取數字 45:<span class="ui_bubble_rating bubble_45"></span>這是我到目前為止所嘗試的:$rating = $xp->query('//span[@class="ui_bubble_rating"]');
$datas[$activity]['rating'] = $rating->item(0)->getAttribute('class');請問我在這里缺少什么?
3 回答

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
如果我正確理解您要尋找的內容,這應該有效:
$rating = $xp->query('//span[contains(@class,"ui_bubble_rating")]/@class'); echo explode(" bubble_",$rating[0]->textContent)[1];
輸出:
45

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
你的@class正在尋找直接匹配的class="ui_bubble_rating"
您可能必須使用該contains()
函數在字符串中進行搜索
//span[contains(@class,'ui_bubble_rating')]

慕俠2389804
TA貢獻1719條經驗 獲得超6個贊
我推薦以下 XPath,如:
//span[contains(concat("?",?normalize-space(@class),?"?"),?"?ui_bubble_rating?")]
然后,您可以使用正則表達式檢索要查找的號碼,該正則表達式查找以 開頭的一系列數字bubble_
:
$ratingsElements = $xp->query('//span[contains(concat(" ", normalize-space(@class), " "), " ui_bubble_rating ")]');
if ($ratingsElements->length > 0) {
? $firstRatingElement = $ratingsElements->item(0);
? if (preg_match('/(?<=\bbubble_)\d+/', $firstRatingElement->getAttribute('class'), $matches)) {
? ? $datas[$activity]['rating'] = $matches[0];? // 45
? }
}
- 3 回答
- 0 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消