2008-12-09 4 views
2

J'essaie de récupérer une image d'un site web en utilisant simpleXML et je reçois une erreur PHP disant que j'essaye d'appeler une fonction membre xpath() sur un non-objet.Appel à une fonction membre xpath() sur un non-objet?

Voici les lignes que je suis en train d'utiliser pour obtenir l'étiquette source de l'image:

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

Qu'est-ce que je fais mal? Il est assez clair que l'avant-dernière ligne a un problème, mais je ne suis pas sûr de ce que c'est.

Répondre

3

Problème résolu. A été amusant xpath sur une chaîne vide.

+0

Oui, c'est ce que je voulais dire par ma réponse. – dancavallaro

6

Essayez ce code pour d'abord vous assurer que le document est correctement analysé.

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