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); + }); });