Klingone22
Level-2
- Beiträge
- 100
- Reaktionspunkte
- 14
-> Hier kostenlos registrieren
Hallo alle miteinander!
Ich habe ein Problem, was vermutlich auf meine Unwissenheit zurückzuführen ist und bei manchen Kopfschütteln und/oder Augenverdrehen auslösen wird, also bitte um Nachsicht
:
Ich habe einen String, wo ich per HTTP einen XML String (größer als 512 Zeichen) empfange:
Der empfangene String schaut auszugsweise wie folgt aus:
Nun suche ich eine einfache Methode, um z.B. <state> auszuwerten. Die Variante mit "find2" und "memcpy" und "right" geht, finde ich aber nicht schön.
Mit FB_JsonDomParser bin ich leider nicht erfolgreich (jsonDoc bleibt immer 0):
Hab auch ein wenig mit FB_XmlDomParser und laut dem Infosys Beispiel experimentiert, aber auch leider nicht erfolgreich.
FB_XmlSrvRead kann ja nur eine Datei verarbeiten, da ich ja "nur" einen String habe, funktioniert das ja nicht.
Ich vermute, dass ich irgendeine Kleinigkeit falsch mache bzw. eine Grundlage nicht verstehe / falsch interpretiere.
Danke für eure Hilfe!
LG
Klingone22
Ich habe ein Problem, was vermutlich auf meine Unwissenheit zurückzuführen ist und bei manchen Kopfschütteln und/oder Augenverdrehen auslösen wird, also bitte um Nachsicht

Ich habe einen String, wo ich per HTTP einen XML String (größer als 512 Zeichen) empfange:
Code:
sContent : STRING(4000);
IF NOT fbRequest.bError THEN
bGetContentResult:= fbRequest.GetContent(pContent:= ADR(sContent),
nContentSize:= SIZEOF(sContent),
bSetNullTermination:= TRUE);
IF fbRequest.nStatusCode >= 200 AND fbRequest.nStatusCode < 300 THEN
bGetJsonResult:= FALSE;
Der empfangene String schaut auszugsweise wie folgt aus:
Code:
scontent:= ''<?xml version="1.0" encoding="UTF-8" standalone="yes"?><socketsState><socketState><id>672C24E1-780D-457B-BAA1-C1D3BB5A7D2B.476A5CEA-951D-436A-A6CC-F71B94E48725.4A2963B9-2831-4656-A9E7-328BA8490F52</id><name>EVSE.PLUG A.SOCKET A</name><number>1</number><state>8</state><previousState>6</previousState>......'
Nun suche ich eine einfache Methode, um z.B. <state> auszuwerten. Die Variante mit "find2" und "memcpy" und "right" geht, finde ich aber nicht schön.
Mit FB_JsonDomParser bin ich leider nicht erfolgreich (jsonDoc bleibt immer 0):
Code:
bGetJsonResult : BOOL;
jsonDoc : SJsonValue;
fbJson : FB_JsonDomParser;
bGetJsonResult:= FALSE;
jsonDoc:= fbRequest.GetJsonDomContent(fbJson);
IF jsonDoc <> 0 THEN
bGetJsonResult:= TRUE;
IF fbJson.HasMember(jsonDoc, 'state') THEN
Hab auch ein wenig mit FB_XmlDomParser und laut dem Infosys Beispiel experimentiert, aber auch leider nicht erfolgreich.
FB_XmlSrvRead kann ja nur eine Datei verarbeiten, da ich ja "nur" einen String habe, funktioniert das ja nicht.
Ich vermute, dass ich irgendeine Kleinigkeit falsch mache bzw. eine Grundlage nicht verstehe / falsch interpretiere.
Danke für eure Hilfe!
LG
Klingone22