Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:12459 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 16833 invoked by uid 1010); 29 Aug 2004 22:26:39 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 16217 invoked from network); 29 Aug 2004 22:26:17 -0000 Received: from unknown (HELO rounoff.darktech.org) (66.11.160.117) by pb1.pair.com with SMTP; 29 Aug 2004 22:26:17 -0000 Received: from outoforder.argon.net ([10.10.10.5]) by rounoff.darktech.org with esmtp (Exim 3.35 #1 (Debian)) id 1C1Y7l-0006Hq-00; Sun, 29 Aug 2004 18:26:09 -0400 Message-ID: <413257FB.9050006@argontechnologies.ca> Date: Sun, 29 Aug 2004 18:26:03 -0400 User-Agent: Mozilla Thunderbird 0.7.3 (Windows/20040803) X-Accept-Language: en MIME-Version: 1.0 To: Marcus Boerger CC: internals@lists.php.net References: <41313CF1.3000706@argontechnologies.ca> <24016851.20040829123018@marcus-boerger.de> In-Reply-To: <24016851.20040829123018@marcus-boerger.de> X-Enigmail-Version: 0.85.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] SimpleXMLIterator From: mathieu.bruneau@argontechnologies.ca (Mathieu Bruneau) Marcus Boerger wrote: > Hello Mathieu, > > Sunday, August 29, 2004, 4:18:25 AM, you wrote: > > >>Hi all, > > >> I have been playing with the SPL lately and today I ended up playing >>with the SimpleXMLIterator. > > >> The documentation on that class if fairly poor and I'm in fact >>requesting some information about it. I managed to create a >>SimpleXMLIterator passing it basic xml in the constructor but wasn't >>able to get anything from the getChildren() method and hasChildren() >>return false. The var_dump of the iterator show me the expected thing tough. > > >>Nor does the current() or key() return anything. I'm using php5.0.1 > > > >>Example: >> > >>$xml = "Here we areThere"; > > >>$it = new SimpleXMLIterator($xml); > > >>var_dump($it); > > >>while($it->hasChildren()) >>{ >> echo "While\n"; >> $child = $it->getChildren(); >>} > > > Try working with while($it->valid().... > Besides that SimpleXMLIterator implements the RecursiveIterator interface. > What it does is iterating over one element and if teh element has sub > elements then hasChildren() returns true and getchildren() returns the > iterator for that sub element. To see what's going on have a look at > ext/spl/tests/sxe_00*.phpt. > > regards > marcus > > I already tried that but I figured out what I was doing wrong... You need to rewind the iterator before using it... I don't know why but I was assuming that it was ready for a loop! The other solution foreach is working as the foreach does a rewind() on it at first. -- Math aka ROunofF ====== argontechnologies.ca