SimpleXMLIterator::hasChildren
(PHP 5 >= 5.1.0, PHP 7)
SimpleXMLIterator::hasChildren — Проверяет, имеет ли текущий элемент вложенные элементы
Описание
public bool SimpleXMLIterator::hasChildren
( void
)
Этот метод проверяет, имеет ли текущий элемент SimpleXMLIterator вложенные элементы.
Список параметров
У этой функции нет параметров.
Возвращаемые значения
TRUE
если у текущего элемента есть вложенные элементы; в противном случае FALSE
Примеры
Пример #1 Проверяет, имеет ли текущий элемент вложенные элементы
<?php
$xml = <<<XML
<books>
<book>
<title>Основы PHP</title>
<author>Джим Смит</author>
</book>
<book>Основы XML</book>
</books>
XML;
$xmlIterator = new SimpleXMLIterator( $xml );
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
if($xmlIterator->hasChildren()) {
var_dump($xmlIterator->current());
}
}
?>
Результат выполнения данного примера:
object(SimpleXMLIterator)#2 (2) { ["title"]=> string(10) "Основы PHP" ["author"]=> string(9) "Джим Смит" }
- Функция SimpleXMLIterator::current() - Возвращает текущий элемент
- Функция SimpleXMLIterator::getChildren() - Возвращает вложенные элементы текущего элемента
- Функция SimpleXMLIterator::hasChildren() - Проверяет, имеет ли текущий элемент вложенные элементы
- Функция SimpleXMLIterator::key() - Возвращает текущий ключ
- Функция SimpleXMLIterator::next() - Перемещает итератор к следующему элементу
- Функция SimpleXMLIterator::rewind() - Возвращает итератор к первому элементу
- Функция SimpleXMLIterator::valid() - Проверяет, является ли текущий элемент допустимым
Коментарии
Hello,
just a note for people like me who encounter the problems :
<?php
foreach($xmlIterator as $x)
{
if($x->hasChildren())
{
//never reach
echo 'x : ';
var_dump($x->current());
}
if($xmlIterator->hasChildren())
{
echo 'iterator : ';
var_dump($x->current()); //all time null
var_dump($xmlIterator->current());
}
}
?>