xPath找不到指定的元素

时间:2016-02-03 21:21:31

标签: php xpath

为了说明我的问题,我将其简化为以下内容:

<?php
    $html = "
        <!doctype html>
        <html>
            <head>
                <title>Test Title</title>
            </head>
            <body>
                <p>Test Body</p>
            </body>
        </html>
    ";

    $dom = new DOMDocument($html);
    $xPath = new DOMXPath($dom);

    $result = $xPath->query("//html/head/title");
    var_dump($result);

    $title = $result->item(0);
    var_dump($title);
?>

我正在尝试提取标题文字。运行此命令,返回的节点列表的长度为0,因此显然第二次检查也会失败:

C:\xampp\htdocs\mySite\partials\testPage.php:17:
object(DOMNodeList)[3]
  public 'length' => int 0

C:\xampp\htdocs\mySite\partials\testPage.php:20:null

这是一个非常简单的例子,我要么误解了一些东西,要么我需要某种预配置(但我没有看到在例子中有必要)。

1 个答案:

答案 0 :(得分:2)

该文档以裸新行开头,是HTML。

尝试:

$ ./open-files.js open-files.js 
Gjs-Message: JS LOG: starting application
Gjs-Message: JS LOG: activating application

我试过了,

$dom = new DOMDocument();
$dom->loadHTML($html);

并按预期得到了

$dom = new DOMDocument();
$dom->loadHTML($html);
$xPath = new DOMXPath($dom);

$result = $xPath->query("//html/head/title");
// var_dump($result);

$title = $result->item(0);
var_dump($title->textContent);