出于某种原因,我想使用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++) {
}
答案 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) {
...
}