我正在开发一个nodejs应用程序,并使用xml2js解析xml文件。当xml文件是本地的时,我没有问题用xml2js解析它,但是,我需要检索远程xml文件,并且需要通过代理连接。
此代码(读取本地xml文件)工作:
var rundownParser = new xml2js.Parser();
function parseRundown(){
fs.readFile(rundownFolder + '/' + rundownFile, function(err, data) {
rundownParser.parseString(data);
});
}
rundownParser.on('end', function(result) {
console.log("PARSER ENDED")
});这是我通过代理检索远程XML文件的代码:
var rundownParser = new xml2js.Parser();
function parseRundown(){
var options = {
host: proxyHost,
port: proxyPort,
path: mosGatewayPath,
method: 'GET',
headers : {
host: mosGatewayHost
}
};
var req = http.request(options, function(res) {
res.on('data', function (response) {
console.log("REMOTE DATA: "+response)
rundownParser.parseString(response);
});
});
req.end();
}
rundownParser.on('end', function(result) {
console.log("PARSER ENDED")
});在检索远程文件的代码中,我在“data”事件中看到了正确的响应。所以我知道连接是工作的,但在那之后,它只是挂起,它永远不会到达解析器的结束事件。不会抛出错误。
我真的很感激任何帮助我指出我做错了什么。
蒂娅!
发布于 2015-02-17 15:58:12
在响应发出“结束”后,尝试调用parseString。
例如:
var req = http.request(options, function(res) {
var body;
res.on('data', function (data) {
body += data
});
res.on('end', function() {
console.log("REMOTE DATA: "+body)
rundownParser.parseString(body);
});
});https://stackoverflow.com/questions/28565117
复制相似问题