2012-07-09 146 views
-3

Possible Duplicate:
Invalid argument supplied for foreach()警告:()提供的foreach参数无效

当我用做在PHP foreach()如下:

foreach ($this->rawProfileXMLElement->xpath("//dl[@id='overview']/dd[@class='summary-current']/ul[@class='current']/li") as $current) 
{ 
} 

它提供了以下错误:

Warning : Invalid Argument Supplied for foreach()

如何恢复它?

+1

您的XPath是没有返回任何节点 – maxjackie 2012-07-09 12:32:29

+0

,只需看你提供的参数的内容开始调试。的var_dump($这 - > rawProfileXMLElement->的xpath( “// DL [@ ID = '概览']/DD [@类= '摘要电流']/UL [@类= '当前'] /锂”)) – 2012-07-09 12:33:14

回答

0

尝试:

var_dump($this->rawProfileXMLElement->xpath("//dl[@id='overview']/dd[@class='summary-current']/ul[@class='current']/li")); 

遍历它,看它是否是类似数组的stucture之前。

0

这意味着$this->rawProfileXMLElement->xpath("//dl[@id='overview']/dd[@class='summary-current']/ul[@class='current']/li") 不是预期在foreach中的阵列。

尝试var_dump($this->rawProfileXMLElement->xpath("//dl[@id='overview']/dd[@class='summary-current']/ul[@class='current']/li"))以查看函数调用中的内容。

0

xpath函数可能会返回FALSE错误。根据this post,如果文档中没有元素,也可能发生这种情况。

尝试将其分配给一个临时变量,并在foreach循环使用变量之前检查false

$q = $this->rawProfileXMLElement->xpath("//dl[@id='overview']/dd[@class='summary-current']/ul[@class='current']/li"); 
if (false !== $q) { 
    foreach ($q as $current) { 
    ... 
    } 
} else { 
    echo "Expecting elements in xpath query but got none"; 
} 
相关问题