有人能告诉我如何避免这些错误吗? 测试是否存在命名空间?
当我想向数组添加地理信息时,它就开始了 我认为这样就足够了。
(来自picasa api Feed)
foreach($feed->xpath('//gml:pos') as $pos)
{
$feed_arr['geo'][$i]['pos'] = (string)$pos[0];
$i++;
}
<b>Warning</b>: SimpleXMLElement::xpath() [<a href='/phpmanual/simplexmlelement.xpath'>simplexmlelement.xpath</a>]: Undefined namespace prefix in <b>/home/woonbel/public_html/tsa.nl/applicatie/lib/gpicasa.class.php</b> on line <b>390</b><br />
<br />
<b>Warning</b>: SimpleXMLElement::xpath() [<a href='/phpmanual/simplexmlelement.xpath'>simplexmlelement.xpath</a>]: xmlXPathEval: evaluation failed in <b>/home/woonbel/public_html/tsa.nl/applicatie/lib/gpicasa.class.php</b> on line <b>390</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/woonbel/public_html/tsa.nl/applicatie/lib/gpicasa.class.php</b> on line <b>390</b><br />
问候,理查德
答案 0 :(得分:1)
当它不在$element->getDocNamespaces();
答案 1 :(得分:0)
干净的解决方案是Wrikken发布的解决方案,但你可以试试这个
foreach( (($tmp = @$feed->xpath('//gml:pos')) ? $tmp : array()) as $pos ) {
// body
}
$ xml-&gt;使用'@'调用xpath来抑制错误消息(前两个关于xpath的警告),结果被分配给$ tmp。然后评估条件语句。 $ xml-&gt; xpath(...)? $ tmp:array()将返回$ tmp(xpath查询的结果),如果它包含有效数据,否则它将返回一个空数组。这将避免无效的foreach参数的警告输出。