亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 中使用 XPath 從元素獲取類

在 PHP 中使用 XPath 從元素獲取類

PHP
一只斗牛犬 2023-09-15 09:50:43
如何使用 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


查看完整回答
反對 回復 2023-09-15
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

你的@class正在尋找直接匹配的class="ui_bubble_rating"

您可能必須使用該contains()函數在字符串中進行搜索

//span[contains(@class,'ui_bubble_rating')]


查看完整回答
反對 回復 2023-09-15
?
慕俠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

? }

}

演示


查看完整回答
反對 回復 2023-09-15
  • 3 回答
  • 0 關注
  • 170 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號