2012-06-03 115 views
3

我需要一些xpath幫助才能從html頁面中提取值$ 283。PHP xpath從特定ID的網頁中提取價值

這裏是我的PHP

$html = file_get_contents("https://test.com/testpage.php"); 
$html = tidy_repair_string($html); 
$doc = new DomDocument(); 
$doc->loadHtml($html); 
$xpath = new DomXPath($doc); 

$avg = $xpath->evaluate('string(//*[@id="Average"]/@value)'); 
echo $avg; 

下面是HTML提前

<div class="List"> 
    <span class="bold">Avg</span> 
    <span id="Average">$283</span> 
</div> 

感謝。

回答

5

試試這個XPath表達式:

//div[@class="List"]/span[@id="Average"] 

或者乾脆:

//*[@id='Average'] 

這是一個完整的工作代碼:

<?php 
$doc = new DOMDocument(); 
$doc->loadHTMLFile('http://127.0.0.1/test.html'); 

$xpath = new DOMXpath($doc); 

$elements = $xpath->query("//*[@id='Average']"); 

if (!is_null($elements)) { 
    foreach ($elements as $element) { 
     $nodes = $element->childNodes; 
     foreach ($nodes as $node) { 
      echo $node->nodeValue. "\n"; 
     } 
    } 
} 
?> 

就換成你自己的網址。

+0

完美,謝謝。 – swudev

+0

如何使用它從具有某個類的div中提取數據? – Deepak

+0

'div [@ class =「foobar」]' –