simplexml_load_string如果没有返回任何内容

时间:2013-04-22 10:56:19

标签: php xml simplexml

如果xml结果确实存在,我试图只运行一个循环。我通过以下方式获取xml结果:

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

我想要做的是在下一行说:

if($albums = hasAValue())
    // Loop

有什么想法吗?或者在加载XML数据之前检查一下?

附注:这是使用Vimeo API。

2 个答案:

答案 0 :(得分:0)

不,你需要进一步了解命名空间的结果,直到身体给出xpath并继续工作。

$albums->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');

具体来说,让我知道你得到的XML响应,我会告诉你输出。

已更新

$albums = simplexml_load_string("#your response#");
echo count($xml->children());

答案 1 :(得分:0)

肮脏的方式:

$albums = @simplexml_load_string(curl_get($api_url . '/videos.xml'));
if ($albums) 
{
    ...
}

这很脏,因为the Error Control Operator @用于“处理”错误情况(例如,提取远程位置的问题)。

另一种方法是在这里区分更多:

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

$albums = NULL;

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

if ($albums) 
{
    ...
}