Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst]wie richtig einsetzen? npm Modul xml-js

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

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

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

Scheduled Pinned Locked Moved Skripten / Logik
15 Posts 2 Posters 918 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    sveni_lee
    wrote on last edited by
    #1

    ich habe eine xml datei die ich parden möchte

    da die Daten (icontype und title) an die ich heran möchte als Atribute eingetragen sind weiß ich jetzt nicht wie ich diese parsen kann. Ich möchte diese in einer for Schleife weiterverarbeiten…

    Gruß

    Sveni-Lee

    1 Reply Last reply
    0
    • S Offline
      S Offline
      sveni_lee
      wrote on last edited by
      #2

      ich hab's jetzt mal mit "try and error" probiert aber ich bekomme einfach kein Ergebnis

       var xmlstring ='';
       var xml2js = require('xml2js');
       var parser = new xml2js.Parser();
      
       on({id:"onkyo-vis.0.net-usb-list-info-allitems", change: "any"}, function (obj) {
          xmlstring = getState("onkyo-vis.0.net-usb-list-info-allitems").val;
          parser.parseString(xmlstring, function (err, result) {
              log('RESULT: '+ result['response']['items']);
              });
      
      });    
      
      

      ich bekomme aber kein ergebniss, sondern nur javascript.0 2018-07-02 16:07:18.119 info script.js.common.Onkyo_Player: RESULT: [object Object]

      ich komm einfach nicht darauf wie ich an die Attribute icontype und title komme…

      EDIT:

      kleiner schritt nach vorn... log('RESULT= ' + JSON.stringify(result)); gibt mit etwas aus…

      1 Reply Last reply
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #3

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

                log('RESULT: '+ JSON.stringify(result['response']['items']));
        
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Reply Last reply
        0
        • S Offline
          S Offline
          sveni_lee
          wrote on last edited by
          #4

          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
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #5

            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]
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • S Offline
              S Offline
              sveni_lee
              wrote on last edited by
              #6

              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
              0
              • paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by
                #7

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

                Ich habe es damit erfolgreich getestet.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  sveni_lee
                  wrote on last edited by
                  #8

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

                  DANKE!

                  1 Reply Last reply
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    @sveni_lee:

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

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      sveni_lee
                      wrote on last edited by
                      #10

                      @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
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #11

                        @sveni_lee:

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

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          sveni_lee
                          wrote on last edited by
                          #12

                          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
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #13
                            `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]
                            

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              sveni_lee
                              wrote on last edited by
                              #14

                              perfekt… Danke

                              mal schaun ob ich damit weiter komme...

                              1 Reply Last reply
                              0
                              • S Offline
                                S Offline
                                sveni_lee
                                wrote on last edited by
                                #15

                                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
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                466

                                Online

                                32.4k

                                Users

                                81.3k

                                Topics

                                1.3m

                                Posts
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                ioBroker Community 2014-2025
                                logo
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Recent
                                • Tags
                                • Unread 0
                                • Categories
                                • Unreplied
                                • Popular
                                • GitHub
                                • Docu
                                • Hilfe