From 5bd674b82177171b91599936905119bdf166258e Mon Sep 17 00:00:00 2001 From: Nathanael Anderson Date: Wed, 20 Apr 2016 16:14:11 -0500 Subject: [PATCH] Add ability to add & < > and any other normal restricted xml character as long as it is inside either a pair of single quotes or double quotes. --- js-libs/easysax/easysax.js | 22 ++++++++++++++++++++-- node-tests/test-xml.ts | 5 +++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/js-libs/easysax/easysax.js b/js-libs/easysax/easysax.js index 856052f39..19647854e 100644 --- a/js-libs/easysax/easysax.js +++ b/js-libs/easysax/easysax.js @@ -462,7 +462,7 @@ EasySAXParser.prototype.parse = function(xml) { , elem , tagend = false , tagstart = false - , j = 0, i = 0 + , j = 0, i = 0, k = 0, len , x, y, q, w , xmlns , stopIndex = 0 @@ -472,6 +472,7 @@ EasySAXParser.prototype.parse = function(xml) { , pos = 0, ln = 0, lnStart = -2, lnEnd = -1 ; + len = xml.length; function getStringNode() { return xml.substring(i, j+1) }; @@ -582,7 +583,24 @@ EasySAXParser.prototype.parse = function(xml) { }; }; - j = xml.indexOf('>', i+1); + var inside=false; + for (k=i,j=-1;k', position(i + 1)); diff --git a/node-tests/test-xml.ts b/node-tests/test-xml.ts index 66e4ce2a2..3d68641f5 100644 --- a/node-tests/test-xml.ts +++ b/node-tests/test-xml.ts @@ -43,4 +43,9 @@ describe("xml parser", () => { assert.equal("Ω", last_data); }); + it("resolves <> inside quotes", () => { + parser.parse("\"/>"); + assert.equal("<&>", last_attrs.name); + assert.equal("b", last_attrs.blah); + }); });