如何使用 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 关注
- 107 浏览
添加回答
举报
0/150
提交
取消