From 191385624f6c49d5f272ad620ded3b3c3a5f1960 Mon Sep 17 00:00:00 2001 From: Graeme Yeates Date: Wed, 10 Sep 2014 22:41:11 -0400 Subject: [PATCH 1/2] Fix #3; allow some invalid xml --- index.js | 5 ++++- test/domparserTest.js | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index bb103d9..0964171 100644 --- a/index.js +++ b/index.js @@ -10,7 +10,10 @@ exports.DOMParser.prototype.parseFromString = function(str, mime) { var doc = new dom.Document(), parser = new xml.SaxParser(handlersForDocument(doc)); - parser.parseString(str); + if (!/^\s*$/.test(str)) { + parser.parseString(str); + } + return doc; } diff --git a/test/domparserTest.js b/test/domparserTest.js index e644bf3..900ed48 100644 --- a/test/domparserTest.js +++ b/test/domparserTest.js @@ -75,6 +75,18 @@ exports['should parse non-namespace attributes'] = function(test) { test.done(); } +exports['should be able to parse invalid xml'] = function(test) { + var input = 'yuck'; + var doc = dp.parseFromString(input, 'text/xml'); + test.equal(doc.firstChild, null); + + var input = ''; + var doc = dp.parseFromString(input, 'text/xml'); + test.equal(doc.firstChild, null); + + test.done(); +} + exports['should parse attributes with namespace uri'] = function(test) { var input = ''; var doc = dp.parseFromString(input, 'text/xml'); From 9bcc1ea32ed3f382f148ff4e1a80b961175c4422 Mon Sep 17 00:00:00 2001 From: Graeme Yeates Date: Wed, 10 Sep 2014 22:42:55 -0400 Subject: [PATCH 2/2] Update jsdom and libxmljs deps --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0dce4f0..54815ca 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ , "url" : "git@github.com:znerol/node-xmlshim.git" } , "dependencies" : - { "jsdom" : "0.2.x" - , "libxmljs" : "git://github.com/znerol/libxmljs.git#xmlwriter-0.8.1" + { "jsdom" : "0.11.x" + , "libxmljs" : "0.8.x" } , "devDependencies" : { "browserify" : "1.10.x"