SimpleXMLIterator::hasChildren
(PHP 5 >= 5.1.0)
SimpleXMLIterator::hasChildren — Checks whether the current element has sub elements.
Description
public bool SimpleXMLIterator::hasChildren
( void
)
This method checks whether the current SimpleXMLIterator element has sub-elements.
Parameters
This function has no parameters.
Return Values
TRUE
if the current element has sub-elements, otherwise FALSE
Examples
Example #1 Check whether the current element has sub-elements
<?php
$xml = <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;
$xmlIterator = new SimpleXMLIterator( $xml );
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
if($xmlIterator->hasChildren()) {
var_dump($xmlIterator->current());
}
}
?>
The above example will output:
object(SimpleXMLIterator)#2 (2) { ["title"]=> string(10) "PHP Basics" ["author"]=> string(9) "Jim Smith" }
- Функция 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());
}
}
?>