(PHP 5 >= 5.0.1, PHP 7)
SimpleXMLElement::children — Encontra os nós filhos de um dado nó
Este método encontra os nós filhos que estão dentro de um dado membro. O resultado segue as regras normais de iteração.
Nota: SimpleXML tem uma regra quando adicionando propriedades interativas para a maioria dos métodos. Eles não podem ser visualizados com var_dump() ou outros métodos que examinem objetos.
ns
Um namespace XML.
is_prefix
Se o parâmetro is_prefix
for definido como TRUE
,
ns
será considerado um prefixo. Se definido como FALSE
,
ns
será considerado uma URL
de um namespace.
Retorna um elemento SimpleXMLElement, não importando se o nó possui filhos ou não.
Versão | Descrição |
---|---|
5.2.0 |
O parâmetro opcional is_prefix foi adicionado.
|
Exemplo #1 Percorrendo um pseudo-array children()
<?php
$xml = new SimpleXMLElement(
'<person>
<child role="son">
<child role="daughter"/>
</child>
<child role="daughter">
<child role="son">
<child role="son"/>
</child>
</child>
</person>');
foreach ($xml->children() as $second_gen) {
echo ' The person begot a ' . $second_gen['role'];
foreach ($second_gen->children() as $third_gen) {
echo ' who begot a ' . $third_gen['role'] . ';';
foreach ($third_gen->children() as $fourth_gen) {
echo ' and that ' . $third_gen['role'] .
' begot a ' . $fourth_gen['role'];
}
}
}
?>
O exemplo acima irá imprimir:
The person begot a son who begot a daughter; The person begot a daughter who begot a son; and that son begot a son
Exemplo #2 Utilizando namespaces
<?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)
O método SimpleXMLElement::children() retorna um objeto de um nó não importando se este possui ou não filhos. Utilize a função count() no valor de retorno para verificar por nós filhos. A partir do PHP 5.3.0, o métodoSimpleXMLElement::count() deve ser utilizado em substituição.