我想阅读有价格的产品,同样的方法想获得没有价格的产品的数量。我已经在XPath下面写过,但是不起作用
//div[@class='m-product-mini']//a[@class='m-product-mini-price ']//span[not(contains(text(),'$'))]
没有价格元素的HTML:
<div class="m-product-mini-image">
<a href="#" class="btn btn-light btn-quickview no-mobile" style="opacity: 0;">Quick view</a> <a class="m-product-mini-price "><span></span> <span class="priceTag-discount"></span></a>
</div>
带有价格元素的HTML:
<div class="m-product-mini-image">
<a href="#" class="btn btn-light btn-quickview no-mobile">Quick view</a> <a class="m-product-mini-price "><span>$34.95</span> <span class="priceTag-discount"></span></a>
</div>
答案 0 :(得分:0)
开头的类名称错误,div的类别为m-product-mini-image,但是您的xpath只是在寻找m-product-mini,即xpath:
try {
$sql = "UPDATE table bla bla bla";
$bind_param_arr = array();
$stmt = $conn_p->prepare($sql);
$stmt->execute($bind_param_arr);
createLog(200);
echo (json_encode(array('status' => 200, 'data' => 'Updated Successfully'));
} catch (PDOException $e) {
createLog(500);
echo (json_encode(array('status' => 500, 'data' => 'There is some error'));
}
function createLog($status)
{
$log_file = "log.txt";
$openfile = fopen($log_file, "a");
if ( ! $openfile) {
throw new Exception("unable to create log file");
}
$datetime = date("Y-m-d H:i:s a");
fwrite($openfile, $datetime);
fwrite($openfile, 'Bla bla bla');
fwrite($openfile, "\n");
fclose($openfile);
}
可以正常工作,但是这样做的问题是,它为每个条目找到2个span标签,因为您具有价格范围,该价格范围可以为空或其中有价格,然后具有class =的以下范围priceTag-discount。因此,在同时包含两个html代码段的页面上,它找到3个元素,而不是1个元素。因此,您需要删除其中一个span标签(也许在span标签中设置了包含价格的类),或者您将无法使用以下xpath
//div[@class='m-product-mini-image']//a[@class='m-product-mini-price ']//span[not(contains(text(),'$'))]