I have inherited some PHP code (but I’ve little PHP experience) and can’t find how to count some elements in the object returned by simplexml_load_file()
The code is something like this
$xml = simplexml_load_file($feed);
for ($x=0; $x<6; $x++) {
$title = $xml->channel[0]->item[$x]->title[0];
echo "<li>" . $title . "</li>\n";
}
It assumes there will be at least 6 <item> elements but sometimes there are fewer so I get warning messages in the output on my development system (though not on live).
How do I extract a count of <item> elements in $xml->channel[0]?
Here are several options, from my most to least favourite (of the ones provided).
One option is to make use of the
SimpleXMLIteratorin conjunction withLimitIterator.If that looks too scary, or not scary enough, then another is to throw XPath into the mix.
Finally, with little change to your existing code, there is also.