Hi,
<root>
<elementA>ABC
<elementB>Foo</elementB>
<elementB>Bar</elementB>
</elementA>
</root>
>
> Denn dann ergibt der Dump folgendes:
>
> object(SimpleXMLElement)#1 (1) {
> ["elementA"]=>
> string(11) "ABC
>
>
> "
> }
>
> Um die Frage ganz direkt auf den Punkt zu bringen: Wo sind die beiden elementB geblieben? Noch mysteriöser ist für mich, dass `echo $xml->elementA->elementB;`{:.language-php} immernoch „Foo“ ergibt, obwohl laut dem Dump elementB in dem Objekt doch garnicht existiert.
Dann luegt der Dump eben :-)
> Oder, um meine Frage etwas anders zu formulieren: Wie kann es sein, dass `echo $xml->elementA;`{:.language-php} „ABC“ ergibt – sich elementA also wie eine String-Variable innerhalb des Objekts `$xml`{:.language-php} verhält – obwohl es zugleich doch offensichtlich selbst ein SimpleXML Objekt ist, da `echo $xml->elementA->elementB;`{:.language-php} den Zugriff auf das erste elementB erlaubt?
Wenn du ein komplexes Objekt, das nicht aus elementaren, "darstellbaren" Elementen (wie String, Number, ...) besteht, "ausgeben" willst, muss dafuer eine (interne) Methode aufgerufen werden, die es in einen Textstring umwandelt.
(Wenn du bspw. per echo ein Array ausgeben willst, dann bekommst du von PHP ja auch nur den Text "Array" ausgegeben).
Es ist durchaus denkbar, dass die Methode des SimpleXML-Element hier fehlerhaft arbeitet.
MfG ChrisB
--
„This is the author's opinion, not necessarily that of Starbucks.“