2012-06-03 57 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”]' –