2014-12-30 167 views
0

出於某種原因,我想使用for循環,而不是foreach,那麼如何才能獲得$ item的長度? count()不適用於我。計算項目數量PHP

$xml = "http://www.labnol.org/feed/"; 

$xmlDoc = new DOMDocument(); 
$xmlDoc->load($xml); 
$x=$xmlDoc->getElementsByTagName('item'); 

      var_dump(count($x->item(0))); 

    for ($i=0; $i<=5; $i++) { 
} 
+0

爲什麼你傾銷項目0而不是純$ x? –

回答

1

你想用->lenth,你應該這樣做

var_dump($x->length); 
+0

不工作,我得到注意:未定義的屬性:DOMElement :: $ length –

0

$x = $xmlDoc->getElementsByTagName('item');結果是DOMNodeList並具有$length屬性。

var_dump($x->length); 

將返回節點列表的長度。

節點列表也實現了Traversable。所以他們可以用於foreach。

foreach ($x as $item) { 
    //... 
} 

但是,XPath比DOM方法更靈活。您可以獲取項目數量或前6個節點。

$xpath = new DOMXPath($xmlDoc); 

var_dump($xpath->evaluate('count(//item)')); 

foreach ($xpath->evaluate('//item[position() <= 5]') as $item) { 
    ... 
}