【问题标题】:Call to a member function xpath() on a non-object?在非对象上调用成员函数 xpath()?
【发布时间】:2010-09-26 00:05:42
【问题描述】:

我正在尝试使用 simpleXML 从网站获取图像,但收到一个 PHP 错误,提示我正在尝试调用非对象上的成员函数 xpath()

下面是我试图用来获取图像源标签的行:

$xpath = '/html/body/div/div/div[5]/div/div/div[2]/div/div[2]/img';          
$html = new DOMDocument();
@$html->loadHTMLFile($target_URL);
$xml = simplexml_import_dom($html);   
$source_image = $xml->xpath($xpath);
$source_image = $source_image[0]['src'];

我做错了什么?倒数第二行很明显有问题,但我不确定是什么问题。

【问题讨论】:

    标签: php object dom xpath simplexml


    【解决方案1】:

    问题解决了。在一个空字符串上玩 xpath。

    【讨论】:

    • 是的,这就是我的答案。
    【解决方案2】:

    首先尝试此代码以确保正确解析文档。

    $xpath = '/html/body/div/div/div[5]/div/div/div[2]/div/div[2]/img';          
    $html = new DOMDocument();
    @$html->loadHTMLFile($target_URL);
    $xml = simplexml_import_dom($html);   
    if (!$xml) {
        echo 'Error while parsing the document';
        exit;
    }
    $source_image = $xml->xpath($xpath);
    $source_image = $source_image[0]['src'];
    

    【讨论】:

      猜你喜欢
      • 2012-04-20
      • 2015-05-01
      • 2014-08-07
      • 2013-12-01
      • 2015-12-23
      • 2015-08-29
      • 2015-02-02
      • 2015-05-22
      • 2015-03-24
      相关资源
      最近更新 更多