From dc0e5f92818cd734dad53484d9c73b88597c06ff Mon Sep 17 00:00:00 2001 From: Jerry Ye Date: Mon, 19 Sep 2022 13:51:38 +0800 Subject: [PATCH 1/3] allow configure strict parsing --- lib/xml2js.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/xml2js.js b/lib/xml2js.js index 7ea9e9a..5c6b6f5 100644 --- a/lib/xml2js.js +++ b/lib/xml2js.js @@ -315,14 +315,14 @@ function onError(error) { module.exports = function (xml, userOptions) { - var parser = pureJsParser ? sax.parser(true, {}) : parser = new expat.Parser('UTF-8'); + var parser = pureJsParser ? sax.parser(userOptions.strict, {}) : parser = new expat.Parser('UTF-8'); var result = {}; currentElement = result; options = validateOptions(userOptions); if (pureJsParser) { - parser.opt = {strictEntities: true}; + parser.opt = {strictEntities: userOptions.strictEntities}; parser.onopentag = onStartElement; parser.ontext = onText; parser.oncomment = onComment; From d8ffe77e9886922a6d010b43696c362266741d07 Mon Sep 17 00:00:00 2001 From: Jerry Ye Date: Mon, 19 Sep 2022 14:49:11 +0800 Subject: [PATCH 2/3] parse options to sax to customize strict,strictentities and lowercase --- lib/xml2js.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/xml2js.js b/lib/xml2js.js index 5c6b6f5..28c3c02 100644 --- a/lib/xml2js.js +++ b/lib/xml2js.js @@ -315,14 +315,14 @@ function onError(error) { module.exports = function (xml, userOptions) { - var parser = pureJsParser ? sax.parser(userOptions.strict, {}) : parser = new expat.Parser('UTF-8'); + var parser = pureJsParser ? sax.parser(userOptions.strict, userOptions) : parser = new expat.Parser('UTF-8'); var result = {}; currentElement = result; options = validateOptions(userOptions); if (pureJsParser) { - parser.opt = {strictEntities: userOptions.strictEntities}; + //parser.opt = {strictEntities: userOptions.strictEntities}; parser.onopentag = onStartElement; parser.ontext = onText; parser.oncomment = onComment; From e9628c5652de9368c28bd4fd48068d2d7f39a22e Mon Sep 17 00:00:00 2001 From: Jerry Ye Date: Thu, 29 Sep 2022 13:16:57 +0800 Subject: [PATCH 3/3] provide strict true as default --- lib/xml2js.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/xml2js.js b/lib/xml2js.js index 28c3c02..eb3a134 100644 --- a/lib/xml2js.js +++ b/lib/xml2js.js @@ -315,7 +315,7 @@ function onError(error) { module.exports = function (xml, userOptions) { - var parser = pureJsParser ? sax.parser(userOptions.strict, userOptions) : parser = new expat.Parser('UTF-8'); + var parser = pureJsParser ? sax.parser(userOptions.strict??true, userOptions) : parser = new expat.Parser('UTF-8'); var result = {}; currentElement = result;