HTTP Client - XML auslesen ?

Hallo,

ich lese mit meinem Arduino HTTP-Client Daten von meinem Webserver aus.

Der Aufruf sieht so aus:

http://10.0.0.150/api/values/?get=1&count=1&parameter=A_Stat

Die Antwort (im Browser) sieht dann so aus:

<ArrayOfWebLog xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/IOAnalytics.Models">
<WebLog>
<P1>Homematic</P1>
<P2>LAN</P2>
<P3>HM</P3>
<Parameter>A_Status</Parameter>
<Timestamp>2016-01-10T18:55:59.297</Timestamp>
<Username>10.0.0.60</Username>
<Value>0</Value>
</WebLog>
</ArrayOfWebLog>

Wenn ich im Sketch mit client.readStringUntil('\r') die Rückgabe einlese, bekomme ich eine "Datenwurst":

[{"Timestamp":"2016-01-10T18:55:59.297","Parameter":"A_Stat","Username":"10.0.0.60","Value":"0","P1":"ESP002","P2":"-68","P3":"9824"}]

Gibt es eine Möglichkeit direkt auf den relevanten Wert (value) mit XML-Funktionalitäten zuzugreifen ?
Oder muss ich den ganzen Text manuell Durchparsen ?

lG
Gawan

Gawan:
client.readStringUntil('\r')

Schlechte Idee, da blockiend

Ja, musst manuell parsen. Ist einfach.

Warum läßt du die Datei nicht gleich von deinem Webserver auswerten und überträgst nur die relevanten Daten?
z.B. PHP hat simplexml und eine brauchbare DOM Implementierung.

Blockierend bedeutet - sollte das nicht klappen steckt mein Controller fest ?

Gibts eine bessere Lösung ?

ja.

Link post #14 ist das Grundgerüst. Lies aber den ganzen Thread.

Hmmm,... die Antwort kommt mir so bekannt vor.....

Perfekt, funktioniert schon - danke für den Link :slight_smile: