2012-07-09 147 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"; 
} 
相關問題