PHP:类名和回显结果的Xpath查询

时间:2015-07-02 11:26:31

标签: php dom xpath domdocument domxpath

我有这个非常简单的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 )

为什么找不到并打印我指定的类名的内容?

1 个答案:

答案 0 :(得分:1)

DOMDocument::loadHTML()函数需要HTML字符串参数,而不是HTML文件名。您希望使用DOMDocument::loadHTMLFile()函数来加载HTML文件:

$doc = new DOMDocument();
$doc->loadHTMLFile("extract.html");
.....