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: off
Und ich kann es weiter verarbeiten…
Danke.
Grüße
Brati