我是第一次使用PHP。我正在使用php示例在ebay沙箱上上传图像。我在运行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
相关线路为:
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;
我能理解的是respXMLObj没有正确设置。我已检查是否已启用simleXML支持。
有人能帮我调试一下吗。感谢
您引用的代码有以下行:
//curl_setopt($connection, CURLOPT_HEADER, 1 ); // Uncomment these for debugging
似乎您取消了对这些的注释。这将导致在响应中获取HTTP标头。这对于调试来说是可以的,但它将在simplexml_load_string
中创建XML解析错误。
要么重新注释掉它,要么将0
作为它的值。
在我的例子中。我只是删除了XML文件开头的不可见字符BOM。如何做到这一点取决于您的文本编辑器。
$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);
}
尝试使用simplexml_load_file('localpath')
而不是simplexml_load_string()
。我今天(9年后)遇到了同样的问题,这就是我的解决方案。
做一个var_dump($respXmlStr);
我猜这个字符串不是有效的XML。
根据simplexml加载字符串文档,第一个参数应该是A well-formed XML string
-http://php.net/manual/en/function.simplexml-load-string.php