计算PHP的项目数

时间:2014-12-30 00:04:43

标签: php xml for-loop rss

出于某种原因,我想使用for循环,而不是foreach,所以我如何才能获得$ item的长度? count()对我不起作用。

$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++) {
}

2 个答案:

答案 0 :(得分:1)

您想使用->lenth,您应该这样做

var_dump($x->length);

答案 1 :(得分:0)

$x = $xmlDoc->getElementsByTagName('item');的结果是DOMNodeList并且具有$length属性。

var_dump($x->length);

将返回节点列表的长度。

节点列表也实现了Traversable。所以它们可以与foreach一起使用。

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

但是,XPath比DOM方法更灵活。您可以获取项目计数或前6个item节点。

$xpath = new DOMXPath($xmlDoc);

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

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