web-dev-qa-db-fra.com

erreur d'analyse: balise de démarrage attendue, '<' introuvable

J'utilise PHP pour la première fois. J'utilise l'exemple php pour télécharger l'image sur un sandbox ebay. Je reçois le message d'erreur suivant lors de l'exécution du fichier PHP:

PHP Warning:  simplexml_load_string(): Entity: line 1: parser error : Start tag expected, '<' not found in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 69
PHP Warning:  simplexml_load_string(): HTTP/1.1 200 OK in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 69
PHP Warning:  simplexml_load_string(): ^ in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 69
PHP Notice:  Trying to get property of non-object in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 92
PHP Notice:  Trying to get property of non-object in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 93
PHP Notice:  Trying to get property of non-object in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 93
PHP Notice:  Trying to get property of non-object in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 94
PHP Notice:  Trying to get property of non-object in /home/nish/stuff/market place/test/php5/UploadImage/UploadSiteHostedPictures.php on line 94

Les lignes pertinentes sont:

69. $respXmlObj = simplexml_load_string($respXmlStr);     // create SimpleXML object from string for easier parsing
                                                      // need SimpleXML library loaded for this

92. $ack        = $respXmlObj->Ack;
93. $picNameOut = $respXmlObj->SiteHostedPictureDetails->PictureName;
94. $picURL     = $respXmlObj->SiteHostedPictureDetails->FullURL;

Ce que je peux comprendre, c'est que respXMLObj n'est pas configuré correctement. J'ai vérifié que le support simleXML est activé.

Quelqu'un pourrait-il m'aider s'il vous plaît à déboguer ceci. Merci

6
nish

Le code auquel vous faites référence a cette ligne:

//curl_setopt($connection, CURLOPT_HEADER, 1 ); // Uncomment these for debugging

il semble que vous avez commenté ceux-ci. Cela entraînera l’en-tête HTTP dans votre réponse. Ce qui est correct pour le débogage, mais cela créera une erreur d'analyse XML dans simplexml_load_string.

Faites un commentaire à nouveau ou mettez 0 comme valeur.

11
Bart Friederichs

Dans mon cas. Je viens de supprimer le caractère invisible The BOM au début du fichier XML. Comment le faire - dépend de votre éditeur de texte.

0
Ruslan Novikov

Faire une var_dump($respXmlStr); Je suppose que cette chaîne n'est pas un XML valide.

Selon la documentation de simplexml-load-string, le premier paramètre devrait être A well-formed XML string - http://php.net/manual/en/function.simplexml-load-string.php

0
aland
$hasError = false;

if ( $resp == 'Internal Server Error' || empty($resp) )
{
    $hasError = true;
}

if ( ! $hasError )
{                      
    $aux    = !empty($resp) ? explode('', $resp) : NULL;
    $temp   = utf8_decode(trim($aux[0]));               
    $xml    = simplexml_load_string($temp); 
}
0
Danilo Bruno