Mahlzeit,
keine Ahnung ob das der eleganteste Weg ist, aber über den Weg JSON Objekt - bearbeiten - Array einlesen komme ich jetzt an die Werte:
var link = 'http://IPdesAVR/goform/formMainZone_MainZoneXmlStatusLite.xml'; var request = require('request'); var parseString = require('xml2js').parseString; function datenlesen() { request(link, function (error, response, body) { var xml, result; parseString(body, function (err, result) { log("XML Objekt: " + result); xml = JSON.stringify(result); log("XML Objekt: " + xml); xml=replaceAll(xml,'[',''); xml=replaceAll(xml,']',''); xml=JSON.parse(xml); log ("Power: " + xml.item.Power.value); log ("Input: " + xml.item.InputFuncSelect.value); log ("Volume: " + xml.item.MasterVolume.value); log ("Mute: " + xml.item.Mute.value); }); }); // Ende request } datenlesen(); function replaceAll(string, token, newtoken) { if(token!=newtoken) while(string.indexOf(token) > -1) { string = string.replace(token, newtoken); } return string; }Das ergibt:
13:44:34.573 [info] javascript.0 script.js.##_Denon: XML Objekt: {"item":{"Power":[{"value":["OFF"]}],"InputFuncSelect":[{"value":["Favorites"]}],"VolumeDisplay":[{"value":["Absolute"]}],"MasterVolume":[{"value":["-60.0"]}],"Mute":[{"value":["off"]}]}} 13:44:34.573 [info] javascript.0 script.js.##_Denon: Power: OFF 13:44:34.573 [info] javascript.0 script.js.##_Denon: Input: Favorites 13:44:34.573 [info] javascript.0 script.js.##_Denon: Volume: -60.0 13:44:34.573 [info] javascript.0 script.js.##_Denon: Mute: offUnd ich kann es weiter verarbeiten…
Danke.
Grüße
Brati