From 984da50ba13e4938116b3c8980d14aa71f9dcf63 Mon Sep 17 00:00:00 2001 From: djvs Date: Fri, 6 Dec 2019 18:51:38 -0500 Subject: [PATCH] stripNamespaces option --- lib/xml2json.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/xml2json.js b/lib/xml2json.js index 912d2d1c..339863cd 100644 --- a/lib/xml2json.js +++ b/lib/xml2json.js @@ -50,6 +50,10 @@ function startElement(name, attrs) { } } +function stripNamespaces(name, options){ + return options.splitNamespaces ? name.split(':').pop() : name +} + function text(data) { currentObject[textNodeName()] = (currentObject[textNodeName()] || '') + data; } @@ -142,9 +146,10 @@ module.exports = function(xml, _options) { _options = _options || {}; var parser = new expat.Parser('UTF-8'); - parser.on('startElement', startElement); - parser.on('text', text); - parser.on('endElement', endElement); + + parser.on('startElement', (name, attrs) => { return startElement(stripNamespaces(name, options))}) + parser.on('text', text) + parser.on('endElement', (name) => { return endElement(stripNamespaces(name, options)) }) obj = currentObject = {}; ancestors = [];