readmtnxml
Version:
Javascript function to read a MTN.XML feed and convert it to a JavaScript object for use within your web page
43 lines (31 loc) • 1.21 kB
JavaScript
;
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var xml2js = _interopDefault(require('xml2js'));
var axios = require('axios');
const xmlParser = xml2js.Parser({mergeAttrs: true, explicitArray: false});
function readMTNXML(feed, callback){
//Feed could be a string, or a URL, we should try to detect that here. If it starts with http then it can be considered a URL
if(feed.indexOf('http') !== 0){
return parseXML(feed, function(err, response){
callback(err, response);
});
}
axios.get(feed)
.then(function (response) {
parseXML(response.data, function(err, xmlResponse){
callback(err, xmlResponse);
});
})
.catch(function (err) {
callback(new Error({message: err.message || err.toString || 'ERROR', statusCode: response.statusCode}));
});
}
function parseXML(xml, callback){
xmlParser.parseString(xml, function (err, result){
if(err){
return callback(err.message || err.toString());
}
callback(null, result);
});
}
module.exports = readMTNXML;