Comparing version 0.1.0 to 0.1.1
var expat = require('node-expat'); | ||
var fs = require('fs'); | ||
var parser = new expat.Parser('UTF-8'); | ||
// This object will hold the final result. | ||
var obj = {}; | ||
var currentObject = obj; | ||
var obj = currentObject = {}; | ||
var ancestors = []; | ||
var options = {}; //configuration options | ||
function startElement(name, attrs) { | ||
@@ -69,12 +68,17 @@ if (! (name in currentObject)) { | ||
parser.on('startElement', startElement); | ||
parser.on('text', text); | ||
parser.on('endElement', endElement); | ||
module.exports.toJson = function(xml, _options) { | ||
options = null; | ||
var parser = new expat.Parser('UTF-8'); | ||
parser.on('startElement', startElement); | ||
parser.on('text', text); | ||
parser.on('endElement', endElement); | ||
obj = currentObject = {}; | ||
ancestors = []; | ||
options = { | ||
object: false, | ||
reversible: false | ||
} | ||
}; | ||
@@ -85,9 +89,13 @@ for (var opt in _options) { | ||
if (parser.parse(xml)) { | ||
if (options.object) { | ||
return obj; | ||
} | ||
return JSON.stringify(obj); | ||
if (!parser.parse(xml)) { | ||
console.log('-->'+ xml + '<--'); | ||
throw new Error('There are errors in your xml file: ' + parser.getError()); | ||
} | ||
if (options.object) { | ||
return obj; | ||
} | ||
return JSON.stringify(obj); | ||
}; | ||
{ "name" : "xml2json", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"author": "Andrew Turley", | ||
@@ -4,0 +4,0 @@ "email": "aturley@buglabs.net", |
@@ -1,2 +0,2 @@ | ||
# Simple XML2JSON Parser. | ||
# Simple SAX-based XML2JSON Parser. | ||
@@ -3,0 +3,0 @@ It does not parse the following elements: |
@@ -18,2 +18,4 @@ var fs = require('fs'); | ||
var result = parser.toJson(data); | ||
var data2 = fs.readFileSync(fixturesPath + '/' + file); | ||
result = parser.toJson(data2); | ||
@@ -20,0 +22,0 @@ var jsonFile = basename + '.json' |
6511
113