Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]wie richtig einsetzen? npm Modul xml-js

    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

    [gelöst]wie richtig einsetzen? npm Modul xml-js

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

      Wenn das Objekt result im Log angezeigt werden soll, muss es in einen JSON-String konvertiert werden.

              log('RESULT: '+ JSON.stringify(result['response']['items']));
      
      
      1 Reply Last reply Reply Quote 0
      • S
        sveni_lee last edited by

        ja… danke. Jetzt habe ich eine Ergebniss...

        [{'/r>:{'offset':'0','totalitems':'3'},'item':[{'/r>:{'icontype':'N','iconid':'2b','title':'GOTHAM-CITY'}},{'/r>:{'icontype':'N','iconid':'2b','title':'FRITZ-NAS'}},{'/r>:{'icontype':'N','iconid':'2b','title':'TABLET'}}]}]
        

        wie kann dieses Objekt in einer for-schleife auswerten?

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          Das ist ein Array im Array. Angenommen der Variablenname ist obj, dann versuche es mal so:

          `var item = obj[0].item;
          for(let i = 0; i < item.length; i++) {
             log('Titel' + (i+1) + ': ' + item[i].$.title);
          }`
          
          EDIT: Korrigiert (.$ eingefügt).[/i]
          
          1 Reply Last reply Reply Quote 0
          • S
            sveni_lee last edited by

            hmm… das wirft bei mir einen Fehler aus...

            Error in callback: Error: Uncaught, unspecified "error" event. (TypeError: Cannot read property 'item' of undefined
            
            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              Hast Du das Objekt verwendet, das mittels JSON.stringify() im Log ausgegeben wurde ?

              Ich habe es damit erfolgreich getestet.

              1 Reply Last reply Reply Quote 0
              • S
                sveni_lee last edited by

                :roll: natürlich… genau das war es.. jetzt klappt es...

                DANKE!

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  @sveni_lee:

                  jetzt klappt es… `
                  Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

                  1 Reply Last reply Reply Quote 0
                  • S
                    sveni_lee last edited by

                    @Paul53

                    da ich versuche das ganze jetzt irgendwie in ein Widget zu packen hab ich da noch mal eine Frage,kann ich das ganze in die *js in mein Widget bekommen… ich habe xml2js und parser in den Widget ordner installiert aber irgendwie kommt er mit der Zeile

                    var parser = new xml2js.Parser({ explicitArray: true })
                    

                    nicht klar… muß ich parser auch erst nocht irgendwie mit require aufrufen?

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @sveni_lee:

                      ich habe xml2js und parser in den Widget ordner installiert `
                      Das soll funktionieren ??

                      1 Reply Last reply Reply Quote 0
                      • S
                        sveni_lee last edited by

                        nein, das tut es ja eben nicht… 😢

                        meine nächste Idee ist es die xml in ein JSON zu wandeln, das klappt auch schon im Adapter:

                        {"response":{"$":{"status":"ok"},"items":[{"$":{"offset":"0","totalitems":"3"},"item":[{"$":{"icontype":"N","iconid":"2b","title":"TABLET"}},{"$":{"icontype":"N","iconid":"2b","title":"GOTHAM-CITY"}},{"$":{"icontype":"N","iconid":"2b","title":"FRITZ-NAS"}}]}]}}
                        

                        jetzt muss ich nur wieder an die icontype, iconid und title rankommen und das auch wieder in einer schleife…

                        Ich habe zwar schon einiges zu JSON.parse gefunden aber hier ist glaube ich ein Array in einem Array in einem JSON und damit bin ich überfordert…

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 last edited by

                          `var item = obj.response.items[0].item;
                          for(let i = 0; i < item.length; i++) {
                             log('Titel' + (i+1) + ': ' + item[i].$.title);
                             log('Icontype' + (i+1) + ': ' + item[i].$.icontype);
                          }` [/i][/i]
                          
                          1 Reply Last reply Reply Quote 0
                          • S
                            sveni_lee last edited by

                            perfekt… Danke

                            mal schaun ob ich damit weiter komme...

                            1 Reply Last reply Reply Quote 0
                            • S
                              sveni_lee last edited by

                              hier mal ein kleiner Teilerfolg…

                              ich kann jetzt schon erfolgreich durch Home-Media browsen…

                              ~~![](</s><URL url=)https://i.imgur.com/pltlLQU.jpg" />

                              jetzt muß ich noch irgendwie beides zusammen in ein Widget bringen…~~

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              853
                              Online

                              31.7k
                              Users

                              79.9k
                              Topics

                              1.3m
                              Posts

                              2
                              15
                              872
                              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