2015-09-08 4 views
0

Я не могу получить текст. Мне нужна цена <meta itemprop="price" content="28.99"/>Невозможно получить доступ к значению текста с помощью xpath (url)

Пробовал с этим 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 €)

спасибо.

+1

Вы показали желаемый результат и код, который вы пробовали. Какой результат вы получили от этого кода? – LarsH

+0

Я пытаюсь, но не показываю цену продукта. – Yunior

ответ

0

Если вы посмотрите на верхнюю части исходного кода страницы, вы увидите

объявления пространства имен
<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.)

+0

Thx для ответа: D если я хочу это как вы бы xpath? // * [@ id = "ig-product-main-panel-boxprice-contentright-price"] – Yunior

+0

@Yunior: Добро пожаловать. Пожалуйста, нажмите галочку, чтобы принять этот ответ, если он решил вашу проблему. – LarsH

+0

если я хочу это, как вы бы xpath xmlns? // * [@ id = "ig-product-main-panel-boxprice-contentright-price"] – Yunior