Mal wieder zu dämlich gewesen. Für ein Projekt sammle ich von der Schnittstelle einer Firma Pseudo-XML ein. Das jage ich dann durch eine PHP-Funktion, die mir das hübsch als Array zurück gibt. Diese Funktion habe ich relativ stumpf aus dem Internet kopiert.
Und zwar hier: xml2array() – XML Parser for PHP
Gestern habe ich geguckt, warum die Firma denn bitte gewisse Daten vorenthält. Den Fehler habe ich gefunden und laut über deren Pseudo-XML geschimpft. Eben beim Rauchen auf dem Balkon ist mir aufgegangen, dass nicht die Firma Müll ausliefert, sondern die stumpf kopierte PHP-Funktion. Äääääh.
Die Funktion verhält sich nämlich so:
Bei einem <XML><rows><wert1>1</wert1></rows></XML>
liefert die Funktion das Array XML => ROWS => WERT1 => 1 zurück.
Hingegen bei <XML><rows><wert1>1</wert1></rows><rows><wert1>2</wert1></rows></XML>
sieht das Array dann so aus: XML => ROWS => 0 => WERT1 => 1
Sorry Firma, ich habe es nicht so gemeint. Aber am Rande: Euer „XML“ ist trotzdem eine Zumutung …
Merke: Nicht stumpf kopieren, sondern anschliessend kontrollieren.
7. April 2009 um 10:34 Uhr
Hast Du Dir schon mal SimpleXML angesehen? Das ist ziiiiiemlich super für die einfach Verarbeitung von XML in PHP.
http://de.php.net/simplexml
15. April 2009 um 10:52 Uhr
Danke, guter Tipp. Geht prima …