Es liegt daran, dass du zwei lol Elemente hast. Um auf die Sekunde zuzugreifen, müssen Sie dies tun:
%Vor%das gibt dir "da"
%Vor%Gibt dir "Hallo"
Die Methode children () des SimpleXMLEelements gibt Ihnen ein Objekt, das alle untergeordneten Elemente eines Elements enthält, zum Beispiel:
%Vor%gibt Ihnen ein Objekt, das alle untergeordneten Elemente des "testenden" SimpleXMLEelements enthält.
Wenn Sie iterieren müssen, können Sie den folgenden Code verwenden:
%Vor%Es gibt weitere Informationen über SimpleXMLElement hier:
Was @ Yottatron vorgeschlagen hat, ist wahr, aber nicht alle Fälle, wie dieses Beispiel zeigt:
Wenn Ihr XML wie folgt aussehen würde:
%Vor%Simplexmls Ausgabe wäre:
%Vor%und schreiben
%Vor%Sie würden erwarten, dass Ihr Ergebnis
ist %Vor%aber stattdessen würden Sie bekommen:
%Vor%und
%Vor%würdest du bekommen:
%Vor%Was Sie tun müssen, wenn Sie nur den lolelem wollen:
%Vor%Das ergibt dieses Ergebnis (nicht wie erwartet, sondern enthält die richtigen Elemente)
%Vor%Was Sie vielleicht tun möchten, ist die Json-Codierung / Decodierung
%Vor%Mit dem wahren Argument, das Sie aufrufen können, anstatt - & gt; Verwende [Name]
also ein Beispiel wäre:
%Vor% Wenn Sie mehr als ein Element haben, wird es normalerweise in ein @attributes eingefügt, wenn die Elemente Attribute haben. Dem kann mit $title = $title['@attributes']
Ich hoffe, es könnte helfen.
Ach ja, ich erinnere mich an einfaches XML, das mir bei diesem Parsing-Array-Problem fast den Kopf zerbrach Probieren Sie den folgenden Code aus. Es wird Ihnen ein Array von LOL-Elementen geben, oder, wenn Sie nur ein einzelnes LOL-Element haben, wird es das auch in einem Array zurückgeben.
Der Hauptvorteil davon ist, dass Sie etwas wie foreach ($ lol als $ element) machen können, und es wird immer noch auf einem einzelnen (oder auf 0) LOL-Element funktionieren.
%Vor%