(PHP 5 >= 5.0.1)
SimpleXMLElement::children — Encuentra los hijos del nodo dado
Este método encuentra el hijo de un elemento. El resultado cumple las reglas normales de iteración.
Note: SimpleXML ha desarrollado una regla para el añadido de propiedades iterativas a la mayoría de métodos. No pueden ser examinados usando var_dump() ni con cualquier otra función que examine objetos.
Un nombre de espacio XML.
Si is_prefix es TRUE, ns será considerado como un prefijo. Si es FALSE ns será considerado como un espacio de nombres URL.
Devuelve un elemento SimpleXMLElement, tanto si el nodo tiene hijos o no.
Versión | Descripción |
---|---|
5.2.0 | Se añade el parámetro opcional is_prefix. |
Example #1 Recorre el pseudo-array children()
<?php
$xml = new SimpleXMLElement(
'<persona>
<hijo rol="hijo">
<hijo rol="hija"/>
</hijo>
<hijo rol="hija">
<hijo rol="hijo">
<hijo rol="hijo"/>
</hijo>
</hijo>
</persona>');
foreach ($xml->children() as $segunda_gen) {
echo 'La persona engendra un/a ' . $segunda_gen['role'];
foreach ($second_gen->children() as $tercera_gen) {
echo ' quien engendra un/a ' . $tercera_gen['role'] . ';';
foreach ($tercera_gen->children() as $cuarta_gen) {
echo ' y ese/a ' . $tercera_gen['role'] .
' engendra un/a ' . $cuarta_gen['role'];
}
}
}
?>
El resultado del ejemplo sería:
La persona engendra un/a hijo quien engendra un/a hija; La persona engendra un/a hija quien engendra a un/a hijo; y ese/a hijo engendra un/a hijo
Example #2 Usando espacio de nombres
<?php
$xml = '<example xmlns:foo="my.foo.urn">
<foo:a>Apple</foo:a>
<foo:b>Banana</foo:b>
<c>Cherry</c>
</example>';
$sxe = new SimpleXMLElement($xml);
$kids = $sxe->children('foo');
var_dump(count($kids));
$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));
$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));
$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));
$kids = $sxe->children();
var_dump(count($kids));
?>
int(0) int(2) int(2) int(0) int(1)
SimpleXMLElement::children() devuleve un nodo de objeto no impotando si el nodo actuali tiene un hijo o no. Use SimpleXMLElement::count() en el valor retornado para comprobar si hay algún hijo. Como en PHP 5.3.0, SimpleXMLElement::count() puede usarse en su lugar.