Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker 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.1k

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

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

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
15 Beiträge 2 Kommentatoren 918 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    sveni_lee
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      sveni_lee
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          sveni_lee
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              sveni_lee
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  sveni_lee
                  schrieb am zuletzt editiert von
                  #8

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

                  DANKE!

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      sveni_lee
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          sveni_lee
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              sveni_lee
                              schrieb am zuletzt editiert von
                              #14

                              perfekt… Danke

                              mal schaun ob ich damit weiter komme...

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                sveni_lee
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                632

                                Online

                                32.4k

                                Benutzer

                                81.4k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe