NEWS
Parser auslesen von XML - Vorzeichen fehlt
-
Hallo,
ich hab eine Problem mit dem Vorzeichen.
Der Wert wechselt vom Negativen ins Positive.
Leider wird das Vorzeichen "-" vom negative Wert nicht mitgenommen.REGEX:
[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)TEXT:
{"method":"uploadsn","version":"Solax_SI_CH_2nd_20170627_DE01","type":"AL_SE","SN":"EF90923C","Data":[0.7,0.6,302.8,301.2,1.7,236.6,363,38,2.5,18617.3,-38,211,180,49.96,0.62,30,21,20,0.0,4142.5,,,,,,,,,,,,,,,,,,,,,,7774.40,16977.50,,,,,,,,50.00,,,0.0,0.0,0,0.00,0,0,0,0.00,0,8,0,0,0.00,0,8],"Status":"2"}Ergebnis:
38 (müsste -38 sein) -
@skorpion_inka
Das + Zeichen hat ja eine besondere Bedeutung falls Du also das Vorzeichen mit + bzw. - als Auswahl gibst musst Du das + zumindest mit einem Backslsh maskieren.Ich würde für die Zahlen folgenden Ausdruck verwenden:
-?\d+\.?\d*
-
@skorpion_inka sagte in Parser auslesen von XML - Vorzeichen fehlt:
Ergebnis:
38 (müsste -38 sein)ich hab keine Ahnung was dein regEx bezwecken soll?
du willst nur diese eine Zahl haben?
gehst du da über NUM 14?oder brauchst du den RegEx für verschiedenes und änderst dann nur den NUM?
nimm mal
([\d\.\-]+)
und auch num 14Sag mir mal ob du mit
[([^\,]+\,){11}
etwas brauchbares bekommst -
Für mich sieht das aberauch wieder so aus, als ob Du mit dem Parser einen JSON String auseinander reißt. Das würde ich grundsätzlich nicht machen.
Hier Shelly mit Parser auslesen ist auch so ein Kandidat und den konnte man immerhin überzeugen.
-
@mickym sagte in Parser auslesen von XML - Vorzeichen fehlt:
Für mich sieht das aberauch wieder so aus, als ob Du mit dem Parser einen JSON String auseinander reißt. Das würde ich grundsätzlich nicht machen.
das Thema wollte ich diesmal nicht anfangen
Es ist ja XML und nicht JSON -
@homoran sagte in Parser auslesen von XML - Vorzeichen fehlt:
@mickym sagte in Parser auslesen von XML - Vorzeichen fehlt:
Für mich sieht das aberauch wieder so aus, als ob Du mit dem Parser einen JSON String auseinander reißt. Das würde ich grundsätzlich nicht machen.
das Thema wollte ich diesmal nicht anfangen
Es ist ja XML und nicht JSONDas ist JSON
{"method":"uploadsn","version":"Solax_SI_CH_2nd_20170627_DE01","type":"AL_SE","SN":"EF90923C","Data":[0.7,0.6,302.8,301.2,1.7,236.6,363,38,2.5,18617.3,-38,211,180,49.96,0.62,30,21,20,0.0,4142.5,,,,,,,,,,,,,,,,,,,,,,7774.40,16977.50,,,,,,,,50.00,,,0.0,0.0,0,0.00,0,0,0,0.00,0,8,0,0,0.00,0,8],"Status":"2"}
-
@mickym sagte in Parser auslesen von XML - Vorzeichen fehlt:
Das ist JSON
steht aber so nicht in dem Threadtitel.
"Data" ist dann ein array in dem man das elfte Element [10] benötigtEDIT:
danke für den Schubs mit der elf
und wenn es mit dem Parser und[([^\,]+\,){11}
klappt ist das ja auch nicht wild -
@homoran Mit meinem RegEx matched Du aber die Zahlen direkt? Ich dachte, dass der Threadersteller nur Probleme mit dem Vorzeichen hatte und nicht eine bestimmte Zahl brauchte. Aber egal - er kann es sich ja nun raussuchen:
- JSON richtig analysieren
- Mit RegEx alle Zahlen aussortieren, wobei er über $match ja alle Zahlen in ein Array bekommt und über den Index auch direkt auf das 11. Element zugreifen kann bzw. 15. Element zugreifen
- Deine Lösung
-
@mickym sagte in Parser auslesen von XML - Vorzeichen fehlt:
er kann es sich ja nun raussuchen:
der Möglichkeiten sind es viele, allein die Wahl ist schwer
-