首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xml2js不解析通过代理检索的xml

xml2js不解析通过代理检索的xml
EN

Stack Overflow用户
提问于 2015-02-17 15:35:36
回答 1查看 405关注 0票数 1

我正在开发一个nodejs应用程序,并使用xml2js解析xml文件。当xml文件是本地的时,我没有问题用xml2js解析它,但是,我需要检索远程xml文件,并且需要通过代理连接。

此代码(读取本地xml文件)工作:

代码语言:javascript
复制
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文件的代码:

代码语言:javascript
复制
    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”事件中看到了正确的响应。所以我知道连接是工作的,但在那之后,它只是挂起,它永远不会到达解析器的结束事件。不会抛出错误。

我真的很感激任何帮助我指出我做错了什么。

蒂娅!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-17 15:58:12

在响应发出“结束”后,尝试调用parseString。

例如:

代码语言:javascript
复制
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); 
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28565117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档