如果xml结果确实存在,我试图只运行一个循环。我通过以下方式获取xml结果:
$albums = simplexml_load_string(curl_get($api_url . '/videos.xml'));
我想要做的是在下一行说:
if($albums = hasAValue())
// Loop
有什么想法吗?或者在加载XML数据之前检查一下?
附注:这是使用Vimeo API。
答案 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)
{
...
}