我有这个非常简单的HTML页面(extract.html),内容如下:
<html>
<body>
<span class="price_value">
20.50
</span>
<table id="data" class="outer">
<tr><td>Happy</td><td>Sky</td></tr>
<tr><td>Happy</td><td>Sky</td></tr>
<tr><td>Happy</td><td>Sky</td></tr>
<tr><td>Happy</td><td>Sky</td></tr>
<tr><td>Happy</td><td>Sky</td></tr>
</table>
</body>
我希望使用以下代码获取class price_value(20.50)的值:
<?php
$doc = new DOMDocument();
$doc->loadHTML("extract.html");
$doc->preserveWhiteSpace = false;
$finder = new DomXPath($doc);
$spaner = $finder->query("(//span[@class='price_value'])[1]");
print_r($spaner);
?>
然而,我收到的唯一输出是:
DOMNodeList Object ( [length] => 0 )
为什么找不到并打印我指定的类名的内容?
答案 0 :(得分:1)
DOMDocument::loadHTML()
函数需要HTML字符串参数,而不是HTML文件名。您希望使用DOMDocument::loadHTMLFile()
函数来加载HTML文件:
$doc = new DOMDocument();
$doc->loadHTMLFile("extract.html");
.....