Mailinglisten-Archive |
Hallo, irgendwie habe ich ein Brett vor dem Kopf. Und zwar möchte ich einen XML String in ein Array konvertieren. simplexml_load_string() bietet ja die Möglichkeit, XML Strings zu laden und daraus ein SimpleXMLElement zu erstellen. Nun möchte ich daraus ein Array konvertieren. Hier mal meine Klasse ohne Kommentare und Eingabevalidierungen: class Travello_Xml { protected $_xmlObj; public function __construct($xmlString = false) { $this->_xmlObj = @simplexml_load_string($xmlString); } public function convertToArray() { $xmlArray = $this->asArray($this->_xmlObj); return $xmlArray; } protected function asArray(SimpleXMLElement $xmlObj) { $xmlArray = array(); foreach ($xmlObj as $key => $value) { if (is_object($value)) { $xmlArray[$key] = $this->asArray($value); } else { $xmlArray[$key] = $value; } } return $xmlArray; } } Wenn ich nun die Klasse mit dem folgenden String füttere <config><option><foo>bar</foo><bar>foo</bar></option></config> und die convertToArray() Methode aufrufe, erhalte ich aber nicht das gewünschte Ergebnis: Array ( [option] => Array ( [foo] => bar [bar] => foo ) ) Stattdessen erhalte ich: Array ( [option] => Array ( [foo] => Array ( ) [bar] => Array ( ) ) ) Ich glaube, ich habe entweder ein riesiges Brett vorm Kopf oder ich mache einen grundlegenden Denkfehler. Kann mir jemand bitte einen Tipp geben? Danke und Gruß, Ralf
php::bar PHP Wiki - Listenarchive