(PHP 5 >= 5.3.0)
SimpleXMLElement::count — Counts the children of an element
This method counts the number of children of an element.
Returns the number of elements of an element.
Example #1 Counting the number of children
<?php
$xml = <<<EOF
<people>
<person name="Person 1">
<child/>
<child/>
<child/>
</person>
<person name="Person 2">
<child/>
<child/>
<child/>
<child/>
<child/>
</person>
</people>
EOF;
$elem = new SimpleXMLElement($xml);
foreach ($elem as $person) {
printf("%s has got %d children.\n", $person['name'], $person->count());
}
?>
以上例程会输出:
Person 1 has got 3 children. Person 2 has got 5 children.
daniel dot erni at focusedpublishing dot com (2011-03-22 08:37:21)
Alternative code for PHP < 5.3:
<?php
$count = $node->count(); // PHP > 5.3
$count = count($node->children()); // PHP < 5.3
?>
Jimmy New Tron (2010-06-15 20:17:34)
I used the DOMNodeList $length property to simulate this function since my host had not yet implemented PHP 5.3. The following code makes it portable and allows you to prepare for an upgrade path.
<?php
$url = "http://www.example.com/foo.xml";
$xml = simplexml_load_file($url);
// For debugging
// echo "<p>".phpversion()."</p>";
if(phpversion() >= '5.3.0'){
$bar_count = $xml->foo->bar->count();
}
else {
$doc = new DOMDocument();
$str = $xml->asXML();
$doc->loadXML($str);
$bar_count = $doc->getElementsByTagName("bar")->length;
}
echo "There are ".$bar_count." \"bar\" nodes in this document.<br />";
?>