来源HTML
<div class="number value">14,818</div>
<div class="number delta-negative">
-10.19%</div>
<div class="number value">58,016</div>
<div class="number delta-positive">
+44.38%</div>
<div class="number value">119,561</div>
<div class="number delta-negative">
-11232</div>
代码
$doc = new DomDocument();
$doc->loadHTMLFile('http://example.com/source.html/');
$xpath = new DomXpath($doc);
$query = '//div[@class="number value"]//';
$nodes = $xpath->query($query);
$urls = array();
foreach ($nodes as $node) {
$href = trim($node->nodeValue);
$urls[] = $href;}
$datap = implode(',', $urls);
echo $datap;
我想提取值 14,818 , 57,516 和 119,561 ,但上面的代码不起作用......为什么?
答案 0 :(得分:0)
当您的HTML显示 class="number_value"
时,您的查询适用于class="number value"
。
更改其中一个(可能是HTML)以反映这一点。(编辑问题以纠正错误。)
编辑:
运行查询会导致无效的查询错误。查看您的查询,很明显为什么 - 您有两个尾部斜杠。这些都是无效的,没有任何跟随它们。
试试这个:
$query = '//div[@class="number value"]';