Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser auslesen von XML - Vorzeichen fehlt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Parser auslesen von XML - Vorzeichen fehlt

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      skorpion_inka last edited by

      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)

      46c79f33-e6d9-4f0a-b3a1-f51e42204657-image.png

      mickym Homoran 3 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @skorpion_inka last edited by mickym

        @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*
        

        96daacef-75df-4f33-9723-c0a788f9a578-image.png

        6d35d3dc-1164-4662-82a4-80b97a1b3f7f-image.png

        S 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @skorpion_inka last edited by Homoran

          @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 14

          Sag mir mal ob du mit [([^\,]+\,){11} etwas brauchbares bekommst

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @skorpion_inka last edited by

            @skorpion_inka

            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. 😉

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @mickym last edited by Homoran

              @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

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Homoran last edited by

                @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 JSON

                Das 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"}
                
                Homoran 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @mickym last edited by Homoran

                  @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ötigt

                  EDIT:
                  danke für den Schubs mit der elf
                  und wenn es mit dem Parser und [([^\,]+\,){11} klappt ist das ja auch nicht wild

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Homoran last edited by mickym

                    @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:

                    1. JSON richtig analysieren
                    2. 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

                    c109037e-ad98-4c8e-b1c0-2b970758d76e-image.png

                    1. Deine Lösung
                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @mickym last edited by

                      @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

                      1 Reply Last reply Reply Quote 0
                      • S
                        skorpion_inka @mickym last edited by

                        @mickym

                        Läuft 👍 👍 👍 😁 😁

                        --> -?\d+.?\d*

                        Besten Dank!!

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        719
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        454
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo