Php 如果未返回任何内容,则简单\u xml\u加载\u字符串
我试图仅在xml结果实际存在时运行循环。我通过以下方式获得xml结果: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->
$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());