SimpleXMLElement
PHP Manual

SimpleXMLElement::children

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::childrenEncontra os nós filhos de um dado nó

Descrição

public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )

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.

Parâmetros

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.

Valor Retornado

Retorna um elemento SimpleXMLElement, não importando se o nó possui filhos ou não.

Changelog

Versão Descrição
5.2.0 O parâmetro opcional is_prefix foi adicionado.

Exemplos

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)

Notas

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.

Veja Também


SimpleXMLElement
PHP Manual