Workaround for broken XML parser in node.js/jquery/jsdom
authorWolfram Schneider <wosch@indexdata.dk>
Thu, 30 Jan 2014 13:48:04 +0000 (13:48 +0000)
committerWolfram Schneider <wosch@indexdata.dk>
Thu, 30 Jan 2014 13:48:04 +0000 (13:48 +0000)
test/spec-dev/parseXML.js [new file with mode: 0644]

diff --git a/test/spec-dev/parseXML.js b/test/spec-dev/parseXML.js
new file mode 100644 (file)
index 0000000..c1eb474
--- /dev/null
@@ -0,0 +1,24 @@
+// Workaround for broken XML parser in node.js/jquery
+
+var jsdom = require("jsdom");
+var DOMParser = require('xmldom').DOMParser;
+var xmlstring = '<?xml version="1.0" encoding="UTF-8"?><process>yes</process>'; 
+
+jsdom.env(
+  '<html/>',
+  // ["http://code.jquery.com/jquery.js"],
+  function (errors, window) {
+       // var $ = window.$; 
+        var $ = require('jQuery');
+
+       // override jquery xml parser with external XML lib xmldoc.DOMParser
+       $.parseXML = function(data) { return new DOMParser().parseFromString(data) };;
+
+       // parse XML string, extract "process" node and keep the text value of the node
+       var result = $( $.parseXML(xmlstring)).find("process").text();
+
+       // should output "yes"
+       console.log("Testing jsdom/xmldom/jQuery $.parseXML() support: " + result);
+  }
+);
+