Alternative code for PHP < 5.3:
<?php
$count = $node->count(); // PHP > 5.3
$count = count($node->children()); // PHP < 5.3
?>
SimpleXMLElement::count
(PHP 5 >= 5.3.0)
SimpleXMLElement::count — Cuenta los hijos de un elemento
Descripción
public int SimpleXMLElement::count
( void
)
Este método cuenta el número de hijos de un elemento.
Valores devueltos
Devuelve el número de elementos de un elemento.
Ejemplos
Ejemplo #1 Cuenta el número de hijos
<?php
$xml = <<<EOF
<people>
<person name="Persona 1">
<child/>
<child/>
<child/>
</person>
<person name="Persona 2">
<child/>
<child/>
<child/>
<child/>
<child/>
</person>
</people>
EOF;
$elem = new SimpleXMLElement($xml);
foreach ($elem as $person) {
printf("%s tiene %d hijos.\n", $person['name'], $person->count());
}
?>
El resultado del ejemplo sería:
Persona 1 tiene 3 hijos. Persona 2 tiene 5 hijos.
daniel dot erni at focusedpublishing dot com ¶
2 years ago
Jimmy New Tron ¶
2 years ago
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 />";
?>
