(PHP 5 >= 5.0.1, PHP 7)
SimpleXMLElement::children — Поиск дочерних элементов данного узла
Этот метод находит все дочерние элементы узла. Результат подчиняется стандартным правилам итерации.
Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.
nsНе обязательное пространство имен XML.
is_prefix
       Если is_prefix установлен в TRUE,
       ns будет рассмотрен как префикс. Если FALSE,
       ns будет рассмотрен как пространство имен
       URL.
      
Возвращает SimpleXMLElement элемент, даже если узел не имеет дочерних элементов.
| Версия | Описание | 
|---|---|
| 5.2.0 | Добавлен не обязательный параметр is_prefix. | 
Пример #1 Обход псевдо-массива children()
<?php
$xml = new SimpleXMLElement(
'<person>
 <child role="сын">
  <child role="дочь"/>
 </child>
 <child role="дочь">
  <child role="сын">
   <child role="сын"/>
  </child>
 </child>
</person>');
foreach ($xml->children() as $second_gen) {
    echo ' У человека родился(-ась) ' . $second_gen['role'];
    foreach ($second_gen->children() as $third_gen) {
        echo ' у которого родился(-ась) ' . $third_gen['role'] . ';';
        foreach ($third_gen->children() as $fourth_gen) {
            echo ' и у ' . $third_gen['role'] .
                ' родился(-ась) ' . $fourth_gen['role'];
        }
    }
}
?>
Результат выполнения данного примера:
У человека родился(-ась) сын у которого родился(-ась) дочь; У человека родился(-ась) дочь у которого родился(-ась) сын; и у сын родился(-ась) сын
Пример #2 Использование пространства имен
<?php
$xml = '<example xmlns:foo="my.foo.urn">
  <foo:a>Яблоко</foo:a>
  <foo:b>Банан</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() вернет узел объекта в любом случае, даже если текущий узел не имеет потомков. Используя count() для возвращенного значения, можно узнать о существовании потомков. В PHP 5.3.0 вместо этого можно использовать SimpleXMLElement::count().