2013-07-29 3 views
0

okay, поэтому у меня есть исходный код с веб-сайта. Я пытаюсь получить эту информацию 0.00 из следующего исходного кода :Как я могу использовать xpath для захвата содержимого из завитушки - Извещение: попытка получить свойство не-объекта

<div class="row"> 
<div class="span10"> 
<div id="conn_status"/><br/> 
<div id="balance_notifications"/> 





</div> 
</div> 



<center> 



<h2>0 RLM 
(0.00 USD)</h2> 

я хочу, чтобы иметь возможность захватить как значение 0 RLM 0 действительно изменяется и я также хочу, чтобы захватить 0.00 USD часть мне нужно только цифры для отображения в эхо-вывода в моем PHP файл

вот что у меня есть

<?php 
    function check($url2){ 
    $check = curl_init(); 
    curl_setopt($check, CURLOPT_COOKIEJAR, 'cookiemon.txt'); 
    curl_setopt($check, CURLOPT_COOKIEFILE, 'cookiemon.txt'); 
    curl_setopt($check, CURLOPT_TIMEOUT, 40000); 
    curl_setopt($check, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($check, CURLOPT_URL, $url2); 
    curl_setopt($check, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
    curl_setopt($check, CURLOPT_FOLLOWLOCATION, false); 
return curl_exec ($check); 
curl_close ($check); 


} 
$html = check('https://example.org/'); 
$dom = new DOMDocument(); 
@$dom->loadHTML($html); 
$xpath = new DOMXPath($dom); 
$value = $xpath->query('//label[@id="balance_notifications"]/following-sibling::text()')->item(0)->nodeValue; 
?> 

и это ответ PHP я получаю

Примечание: Попытка получить имущество не-объект в /opt/lampp/htdocs/newphp.php на линии 20

+0

Ваш XPath содержит несколько очень простых проблем. Чтобы лучше понять, я настоятельно рекомендую вам получить учебник по XPath и работать с ним. –

ответ

0

Ваше выражение XPath неправильно, это почему нет первого элемента (его вообще нет).

Если это ваш собственный контент, используйте только //h2 в качестве выражения XPath.

Если вы хотите запросить первый после <div id="balance_notifications"/>, вы могли бы использовать это выражение (и другие, но вы не даете достаточно информации о вашем входе):

//div[@class="row"][.//div[@id="balance_notifications"]]//h2 

Если вы не можете полагаться на имея, что <div class="row"/>, использовать following::h2 и предел первого результата:

//div[@id="balance_notifications"]/following::h2[1] 

что касается работы со строками: XPath 1.0 whic h, который вы используете в PHP, не может этого сделать, поэтому вам нужно разделить его на PHP.

+0

спасибо за ответ, я изо всех сил пытался заставить его работать с вашим ответом, есть ли какие-либо другие предложения, которые я могу дать мне, чтобы получить значение 0.00 и значение 0 и получить php echo result –

+0

Читайте о том, как предоставить [SSCCE] (http://www.sscce.org). Вы не получите лучших ответов, не дав другим возможность воспроизвести вашу проблему. И скажите нам, где вы застряли. Уделяя некоторое внимание капитализации и пунктуации, ваш вопрос будет намного легче понять. –

Смежные вопросы