0

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

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

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

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

有任何想法吗?或者在加载 XML 数据之前进行检查的方法?

旁注:这是使用 Vimeo API。

4

2 回答 2

0

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

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

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

更新

$albums = simplexml_load_string("#your response#");
echo count($xml->children());
于 2013-04-22T11:06:23.843 回答
0

肮脏的方式:

$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) 
{
    ...
}
于 2013-04-22T21:05:54.323 回答