From b6b2f9fda22f39a4e5309df591191e936b8cf254 Mon Sep 17 00:00:00 2001 From: "francesco.barbera" Date: Mon, 20 May 2019 17:21:37 +0200 Subject: [PATCH] fix validation for tag on multiple lines --- spec/validator_spec.js | 12 ++++++++++++ src/validator.js | 11 ++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/spec/validator_spec.js b/spec/validator_spec.js index 22777cbb..f63104a5 100644 --- a/spec/validator_spec.js +++ b/spec/validator_spec.js @@ -399,4 +399,16 @@ describe("XMLParser", function() { var result = validator.validate(xmlData).err; expect(result).toEqual(expected); }); + + it('should validate xml with a tag attribute splitted on more lines', () => { + const xmlData = ` + + `; + + var result = validator.validate(xmlData); + expect(result).toEqual(true); + }); }); diff --git a/src/validator.js b/src/validator.js index aa800494..1118218c 100644 --- a/src/validator.js +++ b/src/validator.js @@ -48,7 +48,16 @@ exports.validate = function(xmlData, options) { } //read tagname let tagName = ''; - for (; i < xmlData.length && xmlData[i] !== '>' && xmlData[i] !== ' ' && xmlData[i] !== '\t'; i++) { + for ( + ; + i < xmlData.length && + xmlData[i] !== '>' && + xmlData[i] !== ' ' && + xmlData[i] !== '\t' && + xmlData[i] !== '\n' && + xmlData[i] !== '\r'; + i++ + ) { tagName += xmlData[i]; } tagName = tagName.trim();