SimpleXML iterieren ohne foreach oder index?

redX

Erfahrenes Mitglied
Ist es irgendwie möglich, ein XML Element mit den funktionen next/current oder einem Iterator zu iterieren?

Mein Versuch mit next & current:
PHP:
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>
<cars>
        <make name="Ford">
                <model>Mustang</model>
        </make>
        <make name="Honda">
                <model>Accord</model>
        </make>
</cars>';
$xml = simplexml_load_string($xml);
$children = $xml->children();


echo '-------------------------<pre>';
var_dump(current($children));
echo '-----------------';
next($children);
var_dump(current($children));
echo '</pre>';

Und mit einem Iterator habe ich es auch schon versucht, es jedoch nicht hinbekommen. Habe es nach diesem Beispiel versucht... --> http://www.phpro.org/tutorials/Introduction-to-SPL.html#11

Kann wir wer helfen?
Ich möchte einfach mit einem next statement (entweder mit der next() Funktion oder einem Iterator) über ein Set von children iterieren. Da ich dies in verschiedenen Methoden mache, kann ich die Foreach-Schleife (da sie den Array-Pointer resetet) oder eine direktansprechung über den Index nicht benutzen, ... :mad:

Danke schonmal im voraus!
 
Moin,

Mit dem Iterator ginge dies so:
Code:
$xml = new SimpleXMLIterator($xml);
$xml->rewind();
while($xml->valid())
 {
    echo '<pre>'.var_export($xml->current()).'</pre><hr />';
    $xml->next();
 }

Allerdings ist es fraglich, ob dir das weiterhilft, denn der Pointer wird auch dabei verändert.
 
Zurück