我对Node.js和编程非常陌生。我的问题是,我正在尝试从URL的XML中访问一个或多个值,而不是URL的XML中的每个值。
而不是仅使用下面的代码并接收每个值:
console.log(JSON.stringify(data, null, 2));
我尝试使用这行代码:
console.log(JSON.stringify(data, ['Destination', 'Origintime']));
但它空洞了。
这是我正在使用的代码。
var parseString = require('xml2js').parseString;
var http = require('http');
var url = "http://api.irishrail.ie/realtime/realtime.asmx/getStationDataByNameXML?StationDesc=Malahide"
var info = '';
function xmlToJson(url, callback) {
var req = http.get(url, function(res) {
var xml = '';
res.on('data', function(chunk) {
xml += chunk;
});
res.on('error', function(e) {
callback(e, null);
});
res.on('timeout', function(e) {
callback(e, null);
});
res.on('end', function() {
parseString(xml, function(err, result) {
callback(null, result);
});
});
});
}
xmlToJson(url, function(err, data) {
if(err) {
// Handle this however you like
return console.err(err);
res.send('Error')
}
//This way below works, however pulls in every value from xml url.
info = '' + JSON.stringify(data, null, 2) + ''
console.log(JSON.stringify(data, null, 2));
//This way provides no values from url xml.
//console.log(JSON.stringify(data, ['Direction', 'Destination', 'Exparrival']));
//info = '' + JSON.stringify(data, ['Direction', 'Destination', 'Exparrival']) + ''
});
希望你们能帮忙,谢谢!
答案 0 :(得分:0)
试试这个
JSON.stringify(data.map(function (i) {
return {
'Direction' : i['Direction'],
'Destination' : i['Destination'],
'Exparrival' : i['Exparrival']
}
}))