haschildren
تابع hasChildren() روی SimpleXMLIterator کار می کند. این تابع می گوید عنصرِ جاری «فرزند (Child)» دارد یا نه. یعنی آیا داخل این برچسب، برچسب های دیگری هست یا نه.
تعریف کوتاه و کاربرد
hasChildren() بررسی می کند عنصر جاری XML فرزند دارد یا ندارد. نتیجه منطقی می دهد؛ TRUE یعنی دارد، FALSE یعنی ندارد.
سینتکس
SimpleXMLIterator::hasChildren() ورودی ندارد و فقط مقدار منطقی برمی گرداند.
مثال ساده
<?php
$bookxml = <<<XML
<bookstore>
<book>
<title>Everyday Italian</title>
<author>Giada De Laurentiis</author>
</book>
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
</book>
<book>
<title>Learning XML</title>
<author>Erik T. Ray</author>
</book>
</bookstore>
XML;
$xml = new SimpleXMLIterator($bookxml);
for ( $xml->rewind(); $xml->valid(); $xml->next() ) {
if ( $xml->hasChildren() ) {
var_dump($xml->current());
echo "<br>";
}
}
?>
گام های عملی
- XML را در
SimpleXMLIteratorبارگذاری کن. - با
rewind()روی اولین عنصر قرار بگیر. - با
hasChildren()وجود فرزندها را بررسی کن. - اگر داشت، با
current()یا getChildren() ادامه بده.
نکته های کاربردی
نکته: اگر نتیجه FALSE شد، روی عنصرِ دیگری برو و دوباره تست کن.
نکته: برای پیمایش منظم از rewind()، current() و next() استفاده کن.
نکته: اگر نیاز به جستجوی دقیق داری، از XPath کمک بگیر.
جمع بندی سریع
hasChildren()فقط وجود فرزندها را چک می کند.- نتیجه آن منطقی است؛
TRUEیاFALSE. - قبل ازش معمولاً
rewind()لازم است. - برای کار با فرزندها از
getChildren()استفاده کن.