无法使用xpath (url)访问文本值


Cannot access value of text using xpath (url)

我无法获取文本。我需要价格<meta itemprop="price" content="28.99"/>

尝试使用这个XPath:

    <?php
header('Content-Type: text/html; charset=utf-8'); 
$urlCT = "https://www.instant-gaming.com/es/834-comprar-key-steam-pro-evolution-soccer-2016/";
$ch = curl_init($urlCT);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$cl = curl_exec($ch);
$dom = new DOMDocument();
@$dom->loadHTML($cl);
$xpath = new DOMXpath($dom); 
$xpath->registerXpathNamespace('xhtml' , 'http://www.w3.org/1999/xhtml');
$eltitulo = $xpath->query('//xhtml:meta[@itemprop='"price'"]/@content'); 
$titulo = $eltitulo->item($x)->nodeValue;
echo $titulo;
?>

如何获得价格xpath?(28.99€)

谢谢。

如果你查看页面顶部的源代码,你会看到

<html xmlns="http://www.w3.org/1999/xhtml" ...>

这个默认的名称空间声明说,这个元素的每个没有显式名称空间前缀的后代都将在http://www.w3.org/1999/xhtml名称空间中。包括<meta>元素

因此,您需要为这个名称空间声明一个前缀(例如xhtml),并在XPath表达式中使用它:
$xpath->registerXpathNamespace('xhtml' , 'http://www.w3.org/1999/xhtml');
$eltitulo = $xpath->query('//xhtml:meta[@itemprop='"price'"]/@content'); 

(请注意,属性不受默认名称空间的影响,因此例如@itemprop不在任何名称空间中,并且不需要xhtml前缀)