Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果未返回任何内容,则简单\u xml\u加载\u字符串_Php_Xml_Simplexml - Fatal编程技术网

Php 如果未返回任何内容,则简单\u xml\u加载\u字符串

Php 如果未返回任何内容,则简单\u xml\u加载\u字符串,php,xml,simplexml,Php,Xml,Simplexml,我试图仅在xml结果实际存在时运行循环。我通过以下方式获得xml结果: $albums = simplexml_load_string(curl_get($api_url . '/videos.xml')); 我想做的是在下一行说: if($albums = hasAValue()) // Loop 有什么想法吗?还是在加载XML数据之前进行检查的方法 旁注:这是在使用VimeoAPI。不,您需要进一步使用名称空间的结果,直到body给出xpath并继续工作 $albums->

我试图仅在xml结果实际存在时运行循环。我通过以下方式获得xml结果:

$albums = simplexml_load_string(curl_get($api_url . '/videos.xml'));
我想做的是在下一行说:

if($albums = hasAValue())
    // Loop
有什么想法吗?还是在加载XML数据之前进行检查的方法


旁注:这是在使用VimeoAPI。

不,您需要进一步使用名称空间的结果,直到body给出xpath并继续工作

$albums->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
具体来说,让我知道您得到的XML响应,我会告诉您输出

更新

$albums = simplexml_load_string("#your response#");
echo count($xml->children());
肮脏的方式:

$albums = @simplexml_load_string(curl_get($api_url . '/videos.xml'));
if ($albums) 
{
    ...
}
这是肮脏的,因为它用于“处理”错误情况(例如,获取远程位置时出现问题)

另一种选择是在这里进行更多区分:

$xml = curl_get($api_url . '/videos.xml');

$albums = NULL;

if ($xml) 
{
    $albums = simplexml_load_string($xml);
}

if ($albums) 
{
    ...
}

打印($albums);,您将以SimpleXMLElementuse cURL或类似方式获得结果,以检查HTTP响应头,200查找,404查找不到。查看了cURL错误,但没有找到任何地方。相同的错误消息:警告:simplexml\u load\u string()[function.simplexml load string]:实体:第1行:解析器错误:应为Start标记,'我不明白您想说什么。好的,为了简单起见,请检查此项。检查子项是否存在。如果存在,则需要遵循上述方法$xml=simplexml\u load\u string($string);回显计数($xml->children());