SimpleXMLElement::children - Поиск дочерних элементов данного узла
Вернуться к: SimpleXMLElement
SimpleXMLElement::children
(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().
Смотрите также
- SimpleXMLElement::count() - Считает количество дочерних элементов у текущего элемента
- count() - Подсчитывает количество элементов массива или что-то в объекте
Вернуться к: SimpleXMLElement