XML String auslesen
WernerK
- php
Hallo, ich möchte gerne mit PHP und SimpleXML einen XML String auslesen.
Und zwar hätte ich gerne das Belegatum "04.05.2018" vom FIELD[1] (also ID 11)
Ich versuche es so:
$responseData = new SimpleXMLElement($data);
echo $responseData->SUCCESS->DOCUMENT->FIELD[1]->DATA;
Es kommt aber immer die Meldung: Notice: Trying to get property of non-object
<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE XMLID="XMLID">
<SUCCESS REQUESTID="1" COMMAND="LOGIN"/>
<SUCCESS REQUESTID="1" COMMAND="DOCUMENT">
<DOCUMENT ID="4711" FIELDCOUNT="9" CREATION="1536154077" EDITED="1536154077" ARCHIVED="1">
<FIELD ID="10" NAME="Barcode" TYPE="STRING" USE="USER" CODE="ANSI" ATTRIB="FieldID=1070" SEGMID="0">
<DATA><![CDATA[1681276794]]></DATA>
</FIELD>
<FIELD ID="11" NAME="Belegdatum" TYPE="STRING" USE="USER" CODE="ANSI" ATTRIB="FieldID=1027" SEGMID="1">
<DATA><![CDATA[04.05.2018]]></DATA>
</FIELD>
</DOCUMENT>
</SUCCESS>
</RESPONSE>
Was mache ich falsch?
Gruss Werner
Hallo im Moment wo ich es abgesendet habe, habe ich den Fehler entdeckt 😀 Es gibt ja zweimal SUCCESS
Danke Gruss Werner
Tach!
$responseData = new SimpleXMLElement($data); echo $responseData->SUCCESS->DOCUMENT->FIELD[1]->DATA;
Es kommt aber immer die Meldung: Notice: Trying to get property of non-object
Was mache ich falsch?
Sieht aus, als ob du kein Debugging betreibst. Steht in $responseData
das drin, was du erwartest? Was zeigt print_r($responseData)
?
dedlfix.
Lieber WernerK,
Was mache ich falsch?
sollten bei XML die Elementnamen nicht grundsätzlich in Kleinbuchstaben notiert werden? Oder ist das nur bei XHTML/HTML5 so?
Liebe Grüße,
Felix Riesterer.
@@Felix Riesterer
sollten bei XML die Elementnamen nicht grundsätzlich in Kleinbuchstaben notiert werden?
Nein.
XML ist aber case-sensitiv. foo
ist was anderes als Foo
.
Oder ist das nur bei XHTML/HTML5 so?
Für XHTML ist die Kleinschreibung aller Elementtypen und (AFAIK) aller Attributbezeichner festgelegt.
LLAP 🖖