From aa8ad60083109189d395aaba2ec3399552bc1f77 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 26 Oct 2016 22:06:35 +0100 Subject: [PATCH] Let xml node set options both ways to close #1022 to close #975 Thanks @martin-doyle and @nikhildx --- nodes/core/parsers/70-XML.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nodes/core/parsers/70-XML.js b/nodes/core/parsers/70-XML.js index 00ffe7cbe..54d369c1c 100644 --- a/nodes/core/parsers/70-XML.js +++ b/nodes/core/parsers/70-XML.js @@ -18,7 +18,6 @@ module.exports = function(RED) { "use strict"; var xml2js = require('xml2js'); var parseString = xml2js.parseString; - var builder = new xml2js.Builder({renderOpts:{pretty:false}}); function XMLNode(n) { RED.nodes.createNode(this,n); @@ -27,15 +26,17 @@ module.exports = function(RED) { var node = this; this.on("input", function(msg) { if (msg.hasOwnProperty("payload")) { + var options; if (typeof msg.payload === "object") { - var options = {}; + options = {renderOpts:{pretty:false}}; if (msg.hasOwnProperty("options") && typeof msg.options === "object") { options = msg.options; } options.async = false; + var builder = new xml2js.Builder(options); msg.payload = builder.buildObject(msg.payload, options); node.send(msg); } else if (typeof msg.payload == "string") { - var options = {}; + options = {}; if (msg.hasOwnProperty("options") && typeof msg.options === "object") { options = msg.options; } options.async = true; options.attrkey = node.attrkey || options.attrkey || '$';