2

I'm trying to grab an image from a web site using simpleXML and am getting a PHP error saying that I'm trying to call to a member function xpath() on a non-object.

Below are the lines I'm trying to use to get the image's source tag:

$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'];

What am I doing wrong? It's pretty clear the second to last line has a problem, but I'm not sure what it is.

4

2 回答 2

6

Try this code to first make sure that the document is being parsed correctly.

$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'];
于 2008-12-09T07:24:13.020 回答
3

Problem solved. Was funning xpath on an empty string.

于 2008-12-09T07:20:58.893 回答