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