1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Let xml node set options both ways

to close #1022  to close #975
Thanks @martin-doyle and @nikhildx
This commit is contained in:
Dave Conway-Jones 2016-10-26 22:06:35 +01:00
parent 5d98a86a6b
commit aa8ad60083

View File

@ -18,7 +18,6 @@ module.exports = function(RED) {
"use strict"; "use strict";
var xml2js = require('xml2js'); var xml2js = require('xml2js');
var parseString = xml2js.parseString; var parseString = xml2js.parseString;
var builder = new xml2js.Builder({renderOpts:{pretty:false}});
function XMLNode(n) { function XMLNode(n) {
RED.nodes.createNode(this,n); RED.nodes.createNode(this,n);
@ -27,15 +26,17 @@ module.exports = function(RED) {
var node = this; var node = this;
this.on("input", function(msg) { this.on("input", function(msg) {
if (msg.hasOwnProperty("payload")) { if (msg.hasOwnProperty("payload")) {
var options;
if (typeof msg.payload === "object") { if (typeof msg.payload === "object") {
var options = {}; options = {renderOpts:{pretty:false}};
if (msg.hasOwnProperty("options") && typeof msg.options === "object") { options = msg.options; } if (msg.hasOwnProperty("options") && typeof msg.options === "object") { options = msg.options; }
options.async = false; options.async = false;
var builder = new xml2js.Builder(options);
msg.payload = builder.buildObject(msg.payload, options); msg.payload = builder.buildObject(msg.payload, options);
node.send(msg); node.send(msg);
} }
else if (typeof msg.payload == "string") { else if (typeof msg.payload == "string") {
var options = {}; options = {};
if (msg.hasOwnProperty("options") && typeof msg.options === "object") { options = msg.options; } if (msg.hasOwnProperty("options") && typeof msg.options === "object") { options = msg.options; }
options.async = true; options.async = true;
options.attrkey = node.attrkey || options.attrkey || '$'; options.attrkey = node.attrkey || options.attrkey || '$';